【Scala】1. 变量和数据类型

1. 变量和数据类型

1.1 for begining —— hello world

新建hello.scala文件,注意object名字与文件名一致。

object hello {  def main(args:Array[String]): Unit = {  println("hello world!")  }  
}

运行后打印结果如下:

hello world!Process finished with exit code 0

可以不添加返回值类型,scala自动推断,下面输出的结果是一致的。

object hello {  def main(args:Array[String]) = {  println("hello world!")  }  
}

1.2 数据类型

重要的变量类型如下:
在这里插入图片描述

浮点数默认是Double类型,上表中出现了错误。
注:

(1)上述类型基本和c或c++语言类型一致,Scala在此基础上有所拓展:
其中Byte关键字等同于c语言中的char关键字,表示有符号8bit数据;
(2)在Scala中,Char关键字表示无符号的16bit数据,数据范围为0~65535。

可以看下下面的举例:

scala> val a = 1.22
a: Double = 1.22scala> val b = 2.88
b: Double = 2.88scala> val c = a + b
c: Double = 4.1scala> println(c)
4.1

不加f关键字,则必定是Double的类型的数据,只有加了在浮点数后加了f关键字后,才表示数据为单精度浮点数,即是32bit的浮点数类型。
注:

与f类似,若要表示数据为长整型(long)的数据,需要在后面加上L或l关键字作为补充

在scala中使用方法如下,新建variable.scala文件,并添加如下代码:

object variable {  def main(args:Array[String])= {  val a = 1.22  val b = 2.88  val c = a + b  println(f"c == $c%.2f")  }  
}

最后打印的结果如下:

c == 4.10Process finished with exit code 0

注:

println函数中添加f关键字起到格式化字符串打印的效果,这个和c语言不同,同时还可以添加s关键字执行特定的表达式。

1.3 SpinalHDL运算拓展

在SpinalHDL中,可以使用 ": ="对val变量进行赋值操作。

object variable {  def main(args:Array[String])= {  val a = 1.22  val b = 2.88  val c = a + b  print(f"c == $c%.2f\n")  val d = 0  d := a * b  println(f"d == $d%.2f")  }  
}

上述代码中,使用scala编译是会出错的,采用SpinalHDL则不会。

	var d = 0.0  d = a * b  println(f"d == $d%.2f")  

修改后代码可以正确执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/674049.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【射影几何13 】梅氏定理和塞瓦定理探讨

梅氏定理和塞瓦定理 目录 一、说明二、梅涅劳斯(Menelaus)定理三、塞瓦(Giovanni Ceva)定理四、塞瓦点的推广4.1 共线定理4.2 三角形外的塞瓦点 一、说明 在射影几何中,梅涅劳斯(Menelaus)定理和塞瓦定理是…

最大子数组和[中等]

一、题目 给定一个长度为n的环形整数数组nums,返回nums的非空 子数组 的最大可能和 。 环形数组 意味着数组的末端将会与开头相连呈环状。形式上,nums[i]的下一个元素是nums[(i 1) % n],nums[i]的前一个元素是nums[(i - 1 n) % n]。 子数…

论文封面下划线总是对不齐,这3步你肯定没做!

论文封面 在写论文时,总会遇到论文封面下划线对不齐,学会下面这三招轻松搞定封面。 解决方法 ①选中文字,点击“插入”,选择“表格”,找到“文本转化为表格”。列数为2,文字分割位置选空格,设置…

第21讲:动态内存管理

1.为什么要有动态内存分配 2.malloc和free 3.calloc 4.realloc 5.笔试题 6.总结c/c中程序内存区域划分 1.为什么要有动态内存分配 为了调整申请的空间大小,使程序员可以申请和释放空间,提高程序的灵活性 2.malloc和free 作用:分配一块…

深入了解Redis:选择适用于你的场景的持久化方案

自然语言处理的发展 文章目录 自然语言处理的发展强烈推荐前言:Redis提供了几种主要的持久化方案:RDB快照持久化:工作原理: AOF日志文件持久化:混合持久化: 总结强烈推荐专栏集锦写在最后 强烈推荐 前些天…

相机图像质量研究(7)常见问题总结:光学结构对成像的影响--镜片固化

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

戴上HAUWEI WATCH GT 4,解锁龙年新玩法

春节将至,华为WATCH GT 4作为一款颜值和实力并存的手表,能为节日增添了不少趣味和便利。无论你是钟情于龙年表盘或定制属于自己的表盘,还是过年用来抢红包或远程操控手机拍全家福等等,它都能成为你的“玩伴”。接下来,…

C语言 服务器编程-日志系统

日志系统的实现 引言最简单的日志类 demo按天日志分类和超行日志分类日志信息分级同步和异步两种写入方式 引言 日志系统是通过文件来记录项目的 调试信息,运行状态,访问记录,产生的警告和错误的一个系统,是项目中非常重要的一部…

零基础学Python之整合MySQL

Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。 不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范. 它…

【51单片机】要实现动静态数码管,你首先需要知道这些【数码管项目前置知识】

前言 大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁 主要内容含: 本章节内容为【实现动静态数码管】项目的第一个模块完整章节:传送门 欢迎订阅 YY滴C专栏!更多干货持…

Unity接入GVoice腾讯实时语音

Unity接入GVoice腾讯实时语音 一、介绍二、注册GVoice创建项目语音服务1.创建项目2.申请语音权限3.项目管理查看SDK初始化的一些参数和基本信息4.GVoice检测 三、SDK下载SDK是分为两种类型:独立版集成板 SDK放入Unity工程中 四、语音代码写法五、GVoice踩坑语音权限…

【canvas】获取鼠标点击位置坐标的颜色信息

在项目当中,要实现某业务需求例如PS魔棒功能时,则需要获取点击坐标的颜色信息。 功能不复杂,代码也很少,一看便知~~ 核心API为getImageData,传入4个参数,前2个为点击坐标xy,后2个都传1&#xf…

python调用golang中函数方法

一、原因说明:由于simhash方法有多种实现方式,现python中simhash方法与golang中的不一样,需要两者代码生成结果保持一致,故采用python中的代码调用golang编译的so文件来实现。 环境配置:①Windows10系统要有gcc环境&a…

ADSelfService Plus发布离线MFA功能,强化远程工作安全性

ManageEngine ADSelfService Plus推出离线多因素身份验证,提升远程工作安全性确保通过先进的验证方法对企业数据进行授权访问,无论时间、地点或连接问题如何允许远程用户安全进行身份验证,即使未连接到认证服务器或互联网使用高度安全的基于T…

Vue前端框架--Vue工程项目问题总结{脚手架 Vue-cli}

Vue脚手架部署问题总结 我所遇到的一共两大问题 只有先执行npm install之后 才能run serve 否则会报错 vue-cli-serve不是内部或者外部的命令,也不是可运行的程序或者批处理文件的错误 1. 运行npm install会报错 2. 运行npm run serve报错 nodejs官网为 https://no…

C#中实现串口通讯和网口通讯(使用SerialPort和Socket类)

仅作自己学习使用 1 准备部份 串口通讯需要两个调试软件commix和Virtual Serial Port Driver,分别用于监视串口和创造虚拟串口。网口通讯需要一个网口调试助手,网络上有很多资源,我在这里采用的是微软商店中的TCP/UDP网络调试助手&#xff0…

cleanmymacX和腾讯柠檬哪个好用

很多小伙伴在使用Mac时,会遇到硬盘空间不足的情况。遇到这种情况,我们能做的就是清理掉一些不需要的软件或者一些占用磁盘空间较大的文件来腾出空间。我们可以借助一些专门的清理工具,本文中我们来推荐几款好用的Mac知名的清理软件。并且将Cl…

SQL在云计算中的新角色:重新定义数据分析

文章目录 1. 云计算与数据分析的融合2. SQL在云计算中的新角色3. 分布式SQL查询引擎4. SQL-on-Hadoop解决方案5. SQL与其他数据分析工具的集成6. 实时数据分析与SQL7. SQL在云数据仓库中的角色8. 安全性与隐私保护9. SQL的未来展望《SQL数据分析实战(第2版&#xff…

14.scala隐式转换

目录 概述实践代码执行结果 结束 概述 隐式转换:偷偷的(隐式)对现有功能进行增强(转换) 实践 代码 package com.fun.scalaimport java.io.File import scala.io.Sourceobject ImplicitApp {def main(args: Array[String]): Unit {// implicit 2 to 等价 &…

vuecli3 执行 npm run build 打包命令报错:TypeError: file.split is not a function

问题 今天有个项目在打包的时候遇到了一个问题,就是执行 npm run build 命令的时候报错了,如下: 解决 我排查了一下,模拟代码如下:在打包的时候用了 MinChunkSizePlugin const webpack require("webpack"…