当前位置: 首页 > article >正文

【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.22

scala> val b = 2.88
b: Double = 2.88

scala> val c = a + b
c: Double = 4.1

scala> 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.10

Process 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.kler.cn/a/230245.html

相关文章:

  • Pytorch使用手册-Build the Neural Network(专题五)
  • Jmeter中的测试片段和非测试原件
  • SpringBoot 项目中使用 spring-boot-starter-amqp 依赖实现 RabbitMQ
  • Java【多线程】(1)进程与线程
  • 【ArcGISPro】Sentinel-2数据处理
  • 20241125复盘日记
  • DDoS攻击激增,分享高效可靠的DDoS防御方案
  • 计算机网络(第六版)复习提纲27
  • Vue源码系列讲解——变化侦测篇【下】(Array的变化侦测)
  • 第1章 认识Flask
  • 游戏开发-会飞的小鸟(已完结,附源码)
  • SQL Server数据库日志查看若已满需要清理的三种解决方案
  • es6模块化导入导出与commonjs模块化(nodejs导入导出)详解——导入import
  • 搜索引擎DuckDuckGo代理指南
  • 【DDD】学习笔记-服务行为模型
  • [ChatGPT们】ChatGPT 如何辅助编程初探
  • MC34063异常发热分析
  • MATLAB算法实战应用案例精讲-【图像处理】计算机视觉(基础篇)(四)
  • Linux 文件比较工具
  • 用HTML5 + JavaScript实现下雪效果
  • OpenCV-31 获得形态学卷积核
  • jvm一级缓存
  • jmeter二次开发函数-生成身份证号
  • sql求解连续两个以上的空座位
  • arcgis各种版本下载
  • 再识C语言 DAY15 【指针(中)理论结合实践】