Scala - 数据类型


Scala 具有与 Java 相同的数据类型,具有相同的内存占用和精度。下表给出了 Scala 中所有可用数据类型的详细信息 -

先生编号 数据类型和描述
1

字节

8 位有符号值。范围从 -128 到 127

2

短的

16 位有符号值。范围 -32768 至 32767

3

INT

32 位有符号值。范围 -2147483648 至 2147483647

4

长的

64 位有符号值。-9223372036854775808 至 9223372036854775807

5

漂浮

32 位 IEEE 754 单精度浮点数

6

双倍的

64 位 IEEE 754 双精度浮点数

7

查尔

16 位无符号 Unicode 字符。范围从 U+0000 到 U+FFFF

8

细绳

字符序列

9

布尔值

字面意义上的 true 或字面意义上的 false

10

单元

对应无值

11

无效的

空引用或空引用

12

没有什么

所有其他类型的子类型;不包含任何值

13

任何

任何类型的超类型;任何对象都是Any类型

14

任意引用

任何引用类型的超类型

上面列出的所有数据类型都是对象。没有像 Java 那样的原始类型。这意味着您可以调用 Int、Long 等类型的方法。

Scala 基本文字

Scala 对文字使用的规则简单且直观。本节介绍所有基本的 Scala 文字。

整数文字

整数字面量通常为 Int 类型,或者后跟 L 或 l 后缀时为 Long 类型。这是一些整数文字 -

0
035
21 
0xFFFFFFFF 
0777L

浮点文字

当浮点文字后跟浮点类型后缀 F 或 f 时,浮点文字的类型为 Float,否则为 Double 类型。以下是一些浮点文字 -

0.0 
1e30f 
3.14159f 
1.0e100
.1

布尔文字

布尔文字truefalse是 Boolean 类型的成员。

符号文字

符号文字 'x 是表达式scala.Symbol("x")的简写。Symbol是一个case类,其定义如下。

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

字符文字

字符文字是用引号引起来的单个字符。该字符可以是可打印的 Unicode 字符,也可以是由转义序列描述的。以下是一些字符文字 -

'a' 
'\u0041'
'\n'
'\t'

字符串文字

字符串文字是双引号中的字符序列。这些字符要么是可打印的 Unicode 字符,要么是通过转义序列描述的。以下是一些字符串文字 -

"Hello,\nWorld!"
"This string contains a \" character."

多行字符串

多行字符串文字是用三引号 """ ... """ 括起来的字符序列。字符序列是任意的,只是它可以仅在最后包含三个或更多连续的引号字符。

字符不一定是可打印的;换行符或其他控制字符也是允许的。这是一个多行字符串文字 -

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

空值

null 值的类型为scala.Null,因此与每个引用类型兼容。它表示一个引用值,引用一个特殊的“null”对象。

转义序列

以下转义序列可在字符和字符串文字中识别。

转义序列 统一码 描述
\b \u0008 退格键
\t \u0009 水平标签 HT
\n \u000c 换页 FF
\F \u000c 换页 FF
\r \u000d 回车 CR
\" \u0022 双引号“
\' \u0027 单引号。
\\ \u005c 反斜杠\

Unicode 介于 0 和 255 之间的字符也可以用八进制转义符表示,即反斜杠“\”后跟最多三个八进制字符的序列。以下是显示一些转义序列字符的示例 -

例子

object Test {
   def main(args: Array[String]) {
      println("Hello\tWorld\n\n" );
   }
} 

当上面的代码被编译并执行时,它会产生以下结果 -

输出

Hello   World