Scala数据类型

于2017-07-06由小牛君创建

分享到:


Scala的数据类型全部相同于Java中,具有相同的内存占用和精度。以下表是有关可在Scala中所有的数据类型的细节:

数据类型 描述
Byte 8位有符号值。范围从-128到127
Short 16位有符号值。范围从-32768至32767
Int 32 位有符号值。范围从 -2147483648 to 2147483647
Long 64位有符号值。 从-9223372036854775808到9223372036854775807
Float 32位IEEE754单精度浮点数
Double 64位IEEE754双精度浮点数
Char 16位无符号Unicode字符。范围由U+0000至U+FFFF
String 字符序列
Boolean 无论是字面true或false字面
Unit 对应于没有值
Null 空或空引用
Nothing 每一个其他类型的子类型; 包括无值
Any Any类型的超类型;任何对象是任何类型
AnyRef 任何引用类型的超类型

上面列出的所有的数据类型是对象。没有原始的类型,如Java中。这意味着可以调用int,long等上的方法

Scala基本字面值:

Scala中使用的文字规则是简单和直观的。这部分解释了所有Scala中的基本文字。

整数值

整数文字通常是int类型,或类型龙其次是L或l后缀的时候。下面是一些整数文字:

0
035
21 
0xFFFFFFFF 
0777L

浮点型

浮点文字是Float类型后跟一个浮点类型后缀F或f时,否则是Double类型。下面是一些浮点文字:

0.0 
1e30f 
3.14159f 
1.0e100
.1

布尔类型

布尔字面值true和false是Boolean类型的成员。

符号字面值

符号常量'x是简写的表达scala.Symbol(“X”)。Symbol是一个类,它的定义如下。

package scala
final case class Symbol private (name: String) {
   override def toString: String = "'" + name
}

字符

字符文字是用引号括起来的单个字符。该字符是一个可打印的Unicode字符或转义序列描述。这里有一些字符文字:

'a' 
'u0041'
'
'
'	'

字符串常量

字符串常量是在双引号中的字符序列。字符或者是可打印Unicode字符或转义序列描述。下面是一些字符串:

"Hello,
World!"
"This string contains a " character."

多行字符串

多行字符串是包含在三重引号“”字符序列“...”“”。字符序列是任意的,不同之处在于它可以包含三个或更多个连续引号字符仅在未尾。

字符未必是可打印;新的一行或其他控制字符也是允许的。这里是一个多行字符串:

"""the present string
spans three
lines."""

NULL值

null是scala.Null类型一个值,因此这个引用类型兼容。它表示参考值是指一种特殊的“空”的对象。

转义序列:

以下转义序列在字符和字符串。

转义序列 Unicode 描述
 u0008 退格BS
u0009 水平制表符HT
u000c 换页FF
f u000c 换页FF
u000d 回车CR
" u0022 双引用 "
' u0027 单引用 .
u005c 反斜线 

介于0和255字符使用Unicode也可以通过一个八进制转义,也就是说,一个反斜杠“”之后的最多三个八进制字符的序列表示。以下为例子来说明一些转义字符序列:

object Test {
   def main(args: Array[String]) {
      println("Hello	World

" );
   }
} 

当上述代码被编译和执行时,它产生了以下结果:

Hello   World