Scala分为变量(var)跟常量(val) :
区别如下图
惰性赋值:
在Scala中每次赋值都会加载到内存中,如果每次都是一大段字符串的内容,都全部加载到内存中,那么内存势必都会卡爆,影响机子性能,所以Scala出现了一种==“惰性赋值”==方式,
作用:只是再使用的时候,才会真正的加载到内存中去。
用法:提前加上lazy的关键字,只能在常量(val)中用,不能再变量(var)中用(适合于大段的常量内容)。
格式:lazy val 名称:类型 = 值(注意:再scala中可以不用写数据类型,Scala编译器可以自己推导出来)。
数据类型:
Scala的数据类型和Java几乎一样,但是Scala的类型名都是以大写字母开头。
Scala再定变量时,可以不写类型名,Scala编译器可以自动推断。
类型 | 说明 |
---|---|
any | 所有类型的父类,,它有两个子类AnyRef与AnyVal |
AnyVal | 所有数值类型的父类 |
AnyRef | 所有对象类型(引用类型)的父类 |
Unit | 表示空,它类似于Java中的void一样,但Scala要比Java更加面向对象 |
Null | Null是AnyRef的子类,也就是说它是所有引用类型的子类,可以将null赋值给任何对象类型 |
Nothing | 所有类型的子类,不能直接创建该类型实例,某个方法抛出异常时,返回的就是Nothing类型,因为Nothing是所有类的子类,那么它可以赋值为任何类型 |
特意说下字符串类型定义:和Java一样使用双引号定义,
scala> val a="abcdef"
a: String = abcdef
但是值得说下,如果是大量的字符串,需要用这个引号前后包围 “”"
**
Scala插值表达式:
**
1> 和java一样,用+拼接字符串
2>