三种变量修饰符
val 定义常量,不可修改
var 定义变量
lazy val 只要第一次使用到时候,才会运算表达式得到值
可以不显示指定变量的类型,因为Scala会自动进行类型推导
Unit类型: 类似Java的Void, 一般作为函数返回值
有Unit一般是副作用,因为函数没返回值
异常值: ()Nothiong
String
- 构建于Java的String之上
- 新增了字符串插值(interpolation)的特性
```scala
val myname = "lizhy" \\ creating a String
s"My name is ${myname}" \\ String interpolation
```在scala语言中,所有的事物都是对象


unit 等于java 中的void
val就不能再赋值了。与之对应的,var可以在它生命周期中被多次赋值
byte:1字节
short:2字节
int:4字节
long:8字节
数据类型体系:
Scala中的String跟Java中的相同。
新增了字符串插值interpolation的特性。
对于一个函数,如果返回值是Nothing,那么就是有异常出现。
Any是Scala所有类的父类。
Any下有两个子类,一个是AnyVal,另一个是AnyRef。
Unit相当于Java中的void,往往作为函数的返回类型。
所有引用的java类型都是AnyRef的子类,所有自定义的scala类也都是AnyRef的子类。
Null是引用类型的最后一个子类,Nothing是所有类型的最后一个子类
Any父类(基类):下辖AnyVal和AnyRef;最后子类都是Nothing
AnyVal值类型;Numeric\Boolean\Char\Unit=void
AnyRef引用类型:All java.* ref types \All scala.* ref types;AnyRef最后的子类Null
高精度向低精度赋值时,需做隐式转换;
Nothing通常用于函数异常终止
String与java的String相同,引入插值特性interpolation
ie:
val name="wanglei"
S"My name is ${name}"
底精度变量可以直接向高精度变量转换
Unit 表示无值,和其他语言中void等同,用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
Nothing Nothing类型在Scala的类层级的最低端;它是任何其他类型的子类型。函数出错会返回Nothing。
函数定义
def main(args: Array[String]): Unit = {}字符串占位符:
var e = "bob";
println(s"your name is ${e}")
底精度变量可以直接向高精度变量转换
Unit 表示无值,和其他语言中void等同,用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
Nothing Nothing类型在Scala的类层级的最低端;它是任何其他类型的子类型。函数出错会返回Nothing。
scala 类型体系
Scala类型体系
这个很重要的
Scala 类型体系
Scala类型体系
Any 是所有类型的父类,AnyVal是所有值类型的父类,AnyRef是所有引用类型的父类,Null是所有引用类型的子类,Nothing是所有类型的最后一个子类。
常量定义:
var x:数据类型=值
数据类型默认为Int,首字母大写,Boolean、String可省略
Void类型:val x:Unit=()
def 函数名=函数体,抛出异常返回Nothing
字符串插值:s"my name is ${name}"
s不加即引号内本身的意思
Scala类型体系
啊