在scala中,一切都是对象。其中变量是程序的基本组成单位
变量声明
scala中变量的声明是使用 var和val。var 修饰的对象引用可以改变,val 修饰的则不可改变,但对象的状态却是可以改变的。
下面演示具体使用:
代码语言:javascript复制object Var {
def main(args: Array[String]): Unit = {
val i: Int = 6
// i = 7 编译不通过
var j: Int = 7
j = 7
println(i)
println(j)
}
}
scala中一切皆对象
scala中一切皆对象,我们知道java是面向对象编程的,但是java中的基本类型,比如int,是不是基本类型的。 scala的基本类型也是对象
下面是Int的底层java编译的 scala Int
类型的底层代码
注意:
代码语言:javascript复制public final class Int$ implements AnyValCompanion {}
public abstract class Int {
public static double int2double(int var0) {
return Int$.MODULE$.int2double(var0);
}
}
后面会介绍很多scala生成java代码中,都有两个类型, 一个Int这种,一个是 Int
`后缀的。这种方式实现完全面向对象,将类和对象概念完全分开。 后面的object和class关键字也会加深这个概念。
我下面抛砖引玉一下, scala中Int是对java的int,Integer进行包装的,附加了很多方法。