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

1. 变量和数据类型

1.1 for begining ------ hello world

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

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

运行后打印结果如下:

shell 复制代码
hello world!

Process finished with exit code 0

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

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。

可以看下下面的举例:

shell 复制代码
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文件,并添加如下代码:

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")  
  }  
}

最后打印的结果如下:

shell 复制代码
c == 4.10

Process finished with exit code 0

注:

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

1.3 SpinalHDL运算拓展

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

scala 复制代码
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则不会。

scala 复制代码
	var d = 0.0  
    d = a * b  
    println(f"d == $d%.2f")  

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

相关推荐
XINVRY-FPGA1 天前
XCVP1802-2MSILSVC4072 AMD Xilinx Versal Premium Adaptive SoC FPGA
人工智能·嵌入式硬件·fpga开发·数据挖掘·云计算·硬件工程·fpga
9527华安2 天前
国产安路FPGA开发设计培训课程,提供开发板+工程源码+视频教程+技术支持
fpga开发·fpga·安路·视频教程·培训·安路fpga
brave and determined2 天前
可编程逻辑器件学习(day36):从沙粒到智能核心:芯片设计、制造与封装的万字全景解析
fpga开发·制造·verilog·fpga·芯片设计·硬件设计·芯片制造
云雾J视界3 天前
AI芯片设计实战:用Verilog高级综合技术优化神经网络加速器功耗与性能
深度学习·神经网络·verilog·nvidia·ai芯片·卷积加速器
XINVRY-FPGA4 天前
XCVU9P-2FLGC2104I Xilinx AMD Virtex UltraScale+ FPGA
嵌入式硬件·机器学习·计算机视觉·fpga开发·硬件工程·dsp开发·fpga
brave and determined4 天前
可编程逻辑器件学习(day34):半导体编年史:从法拉第的意外发现到塑造现代文明的硅基浪潮
人工智能·深度学习·fpga开发·verilog·fpga·设计规范·嵌入式设计
stay_cloud5 天前
《Verilog语言与FPGA实现》课程实验
verilog·fpga·数码管
IC_Brother5 天前
数字IC经典电路(6)—Ring Oscillator(环形振荡器)与工艺角监控
verilog·数字ic·dc综合
brave and determined6 天前
可编程逻辑器件学习(day30):数字电路设计中的流水线技术:原理、实现与优化
学习·fpga开发·verilog·fpga·数字电路·硬件设计·嵌入式设计
brave and determined6 天前
可编程逻辑器件学习(day29):Verilog HDL可综合代码设计规范与实践指南
深度学习·fpga开发·verilog·fpga·设计规范·硬件编程·嵌入式设计