scala变量修饰符
val:修饰的是不可变的变量,不可以重新赋值的-->值
var:修饰可变变量,可以重新赋值的 --> 变量
Java中修饰常量要用final,如果没有final的话一般都是可变的
注:scala建议全部定义为val的,除非你是业务需求,才允许把他定义成var
我们新创建一个Object
下面是var的演示
下面是val的演示
我们修改b的值
编译器会有错误提示
可以看到错误信息
这需要知道一个概念:变量类型推断
myVar 会被推断为 Int 类型,myVal 会被推断为 String 类型
上面是scala自动推断的类型,我们并不知道是那种数据类型,如果要声明数据类型呢?
val or var VariableName: DataType [=Initial Value or Expression]
val or var VariableName: DataType的意思是变量声明
[=Initial Value or Expression or _]三种初始化形式
Initial Value
Expression
Scala中表达式的返回值就是最后一行代码的执行结果
下面是Scala 支持的数据类型
相对于Java
并无基本类型与包装类型之分
整数类型
Scala的整数类型用于存放整数值,比如 5、18、96、167等等,根据长度不同整数类型又划分出四种类型:
Scala各整数类型有固定的表示范围和字段长度,不受具体操作系统的影响,以保证Scala程序的可移植性。
在程序中定义一个整型变量,如果没有指定,默认为Int类型,如果要定义Long类型,需要在后面加上“l”或者“L”,推荐用“L”。
最大值的获取方式:
这里有一种加s的输出方式
print(s"$a")输出为变量的值
println()打印时自动换行
如果定义一个整数超过了Int类型最大值,而不在后面加上“L”,编译会报错,这时需要加上“L”
浮点类型
Scala的浮点类型可以表示一个小数,比如 3.14f、7.8 、0.168等等,根据长度不同浮点类型又划分出两种类型:
与整数类型类似,Scala 浮点类型也有固定的表数范围和字段长度,不受具体操作系统的影响。Scala的浮点型常量默认为Double型,声明Float型常量,须后加“f”或“F”。通常情况下,应该使用Double型,因为它比Float型更精确(小数点后大致7位)
字符类型
字符类型可以表示单个字符,字符类型是Char,16位无符号Unicode字符(2个字节), 区间值为 U+0000 到 U+FFFF。
字符常量是用单引号(' ')括起来的单个字符,可以直接给Char赋一个整数,然后输出时,会按照对应的unicode码。
也可以输出unicode
在Scala中允许使用转义字符''来将其后的字符转变为特殊字符型常量;
布尔类型
布尔类型也叫Boolean类型,在Scala中,Boolean类型数据只允许取值true和false,占1个字节。
Boolean类型在程序中的作用一般是和逻辑运算结合在一起。
String字符串类型
Scala本身没有String类,它的字符串的类型实际上是java.lang.String,因此和Java中的一样,String是一个不可变的对象,所以该对象不可被修改。这就意味着你如果修改字符串就会产生一个新的字符串对象。
可以去除竖线
Unit类型、Null类型和Nothing类型
Unit类型用来标识过程,也就是没有明确返回值的函数,由此可见,Unit类似于Java里的void。Unit只有一个实例:(),这个实例也没有实质的意义。
Null类只有一个实例对象:null,类似于Java中的null引用。null可以赋值给任意引用类型(AnyRef),但是不能赋值给值类型(AnyVal: 比如 Int, Float,Char, Boolean,Long,Double,Byte,Short)。
Nothing,可以作为没有正常返回值的方法的返回类型,非常直观的告诉你这个方法不会正常返回,而且由于Nothing是其他任意类型的子类,在开发中可以将Nothing返回给任意变量或函数,在抛出异常方面应用较多。
閱讀更多 分享電腦學習 的文章