|
目前risc-v芯片可以用verilog来开发,也可以用基于scala为基础的各种工具来开发,scala比verilog有优势的地方在于更方便更高效,不足的地方是目前verilog的资源较多,我个人感觉,长远来看,基于scala的各种工具将会有更大的机会成为主流。所以首先本版要介绍scala知识。
scala与java保持着大部分兼容的特性,所以数据类型也有很多相同的:
Byte,Short,Int,Long,Float,Double,Char,String,Boolean,Unit(表示无值,与c或java中的void类似),Null(null或空引用),Nothing(在scala的类结构层次中,Nothing处于最底层,是其它任何类型的子类),Any(类似java中的Object),AnyRef(是所有引用类型的基类)。
变量定义一般采用类型自动推断,比如:
var str = "hello"
这代表str被自动推断为String类型,其值为"hello"字符串。scala不需要在一句代码的结束处用分号,我们知道java是需要用分号。
如果需要自已手动规定变量的类型,可以这样做:
var str:String = "hello"
定义变量有有二种:val和var,具体区别实验如下:
var str:String = "test string"
println(str)
str = "hello world"
println(str)
val str2:String = "Test val"
println(str2)
上面代码显示如下:
test string
hello world
Test val
当我们在println(str2)代码下面再加一行:str2="hello val"发现idea工具提示出错。因为scala中val定义的变量相当于java中的final,也就是说一但定义被赋于了初值,以后就不能再改变值了,而var定义的变量则可以修改其值。
|
|