📅  最后修改于: 2020-11-02 04:40:08             🧑  作者: Mango
Scala具有与Java相同的所有数据类型,并且具有相同的内存占用量和精度。以下表格详细说明了Scala中所有可用的数据类型-
Sr.No | Data Type & Description |
---|---|
1 |
Byte 8 bit signed value. Range from -128 to 127 |
2 |
Short 16 bit signed value. Range -32768 to 32767 |
3 |
Int 32 bit signed value. Range -2147483648 to 2147483647 |
4 |
Long 64 bit signed value. -9223372036854775808 to 9223372036854775807 |
5 |
Float 32 bit IEEE 754 single-precision float |
6 |
Double 64 bit IEEE 754 double-precision float |
7 |
Char 16 bit unsigned Unicode character. Range from U+0000 to U+FFFF |
8 |
String A sequence of Chars |
9 |
Boolean Either the literal true or the literal false |
10 |
Unit Corresponds to no value |
11 |
Null null or empty reference |
12 |
Nothing The subtype of every other type; includes no values |
13 |
Any The supertype of any type; any object is of type Any |
14 |
AnyRef The supertype of any reference type |
上面列出的所有数据类型都是对象。没有像Java中那样的原始类型。这意味着您可以在Int,Long等上调用方法。
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是一个案例类,其定义如下。
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 ,因此与每种引用类型都兼容。它表示参考值,该参考值引用特殊的“空”对象。
在字符和字符串字面量可以识别以下转义序列。
Escape Sequences | Unicode | Description |
---|---|---|
\b | \u0008 | backspace BS |
\t | \u0009 | horizontal tab HT |
\n | \u000c | formfeed FF |
\f | \u000c | formfeed FF |
\r | \u000d | carriage return CR |
\” | \u0022 | double quote “ |
\’ | \u0027 | single quote . |
\\ | \u005c | backslash \ |
Unicode在0到255之间的字符也可以用八进制转义符表示,即反斜杠’\’,后跟最多三个八进制字符的序列。以下是显示一些转义序列字符的示例-
object Test {
def main(args: Array[String]) {
println("Hello\tWorld\n\n" );
}
}
编译并执行上述代码后,将产生以下结果-
Hello World