Scala - 数据类型
Scala 具有与 Java 相同的所有数据类型,具有相同的内存占用和精度。 下表给出了 Scala 中所有可用数据类型的详细信息 −
序号 | 数据类型 & 描述 |
---|---|
1 |
Byte 8 位有符号值。 范围从 -128 到 127 |
2 |
Short 16 位有符号值。 范围 -32768 至 32767 |
3 |
Int 32 位有符号值。 范围 -2147483648 到 2147483647 |
4 |
Long 64 位有符号值。 -9223372036854775808 至 9223372036854775807 |
5 |
Float 32 位 IEEE 754 单精度浮点数 |
6 |
Double 64 位 IEEE 754 双精度浮点数 |
7 |
Char 16 位无符号 Unicode 字符。 范围从 U+0000 到 U+FFFF |
8 |
String 一系列字符 |
9 |
Boolean 要么字面真 true ,要么字面假 false |
10 |
Unit 对应无值 |
11 |
Null 空或空引用 |
12 |
Nothing 所有其他类型的子类型; 不包含任何值 |
13 |
Any 任何类型的超类型; 任何对象的类型都是 Any |
14 |
AnyRef 任何引用类型的超类型 |
上面列出的所有数据类型都是对象。 没有像 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
布尔文字
布尔文字 true 和 false 是布尔类型的成员。
符号文字
符号文字 '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 类型,因此与所有引用类型兼容。 它表示一个引用值,它引用一个特殊的"空"对象。
转义序列
以下转义序列可在字符和字符串文字中识别。
转义序列 | Unicode | 说明 |
---|---|---|
\b | \u0008 | 退格 BS |
\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