Scala数据类型
Scala的数据类型基本与Java一致,并且没有基本数据类型,而是直接使用其包装类型,因此,Scala和Java内存类型布局一致,精度一致
在scala是可以对数字等基础类型调用方法的
因此,Scala和Java内存类型布局一致,精度一致
数据类型 | 描述 |
---|---|
Byte | 8bit(1字节)有符号数字,范围在-128 到 127 |
Short | 16bit(2字节)有符号数字,范围在-32768 到 32767 |
Int | 32bit(4字节)有符号数字,范围在-2147483648 到 2147483647 |
Long | 64bit(8字节)有符号数字,范围在-9223372036854775808 到 9223372036854775807 |
Float | 32bit(4字节),IEEE 754标准的单精度浮点数 |
Double | 64bit(4字节),IEEE 754标准的双精度浮点数 |
Char | 16bit Unicode字符,范围在U+0000 到 U+FFFF |
String | 字符串 |
Boolean | 布尔类型 |
Unit | 表示无值,和Java中void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成() |
Null | 空值或空引用,唯一实例是null,AnyRef的子类 |
Nothing | Nothing类型在Scala的类层级的最低端;它是任何其他类型的子类型,表示没有值,没有实例 |
Option | 表示可能存在(Some),可能不存在(None)的值 |
None | Option的两个子类之一,用于安全的函数返回值,比Null安全 |
Some | Option的两个子类之一,表示包装了值 |
Any | 所有其他类的超类 |
AnyRef | 所有引用类(reference class)的超类 |
AnyVal | 所有值类型的超类 |
Nil | 长度为0的List |
Scala字符串
定义多行字符串
在Scala中,单行字符串的定义方式和Java中完全相同,不过,Scala还拥有类似于Python的多行字符串
定义方式,用三双引号
表示即可
1 | scala> val str = """ |
s字符串
1 | scala> val name = "Tom" |
1 | scala> val name = "Tom" |
raw字符串
raw字符串可以使\n
这些转义字符被作为普通字符串
1 | scala> println(raw"\nhello") |
定义变量
定义变量分val
和var
两种关键字:val
关键字声明的是常量,一旦声明不能修改;var
关键字声明的是变量
在Scala当中,鼓励尽量使用val
1 | val name : String = "Tom" |
定义函数(初探)
在Scala当中定义函数使用def
关键字,定义函数并不会直接计算出其结果,而需要等待调用的那一刻
1 | scala> val v1 = 1 |
定义函数也可以使用如下写法
1 | scala> def v4() = v1 + v2 |
区别:
在Scala当中,如果函数没有参数,则可以不用书写()
,在调用时,也是直接书写函数名即可
调用函数(初探)
1 | scala> v3 |
或
1 | scala> v4() |