数据类型
Scala具有与Java相同的所有数据类型,具有相同的内存占用和精度。 以下表格提供了Scala中可用的所有数据类型的详细信息 -
Sr.No | 数据类型和描述 |
---|---|
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 一系列的Chars |
9 | Boolean 无论是文字真实还是文字虚假 |
10 | Unit 对应没有价值 |
11 | Null null或空引用 |
12 | Nothing 每种其他类型的子类型; 不包括任何价值 |
13 | Any 任何类型的超类型; 任何对象都是Any类型 |
14 | AnyRef 任何引用类型的超类型 |
上面列出的所有数据类型都是对象。 Java中没有原始类型。 这意味着您可以在Int,Long等上调用方法。
Scala Basic Literals
Scala用于文字的规则简单直观。 本节介绍所有基本的Scala文字。
积分文字
整数文字通常是Int类型,或者类型为Long,后跟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")的简写。 符号是一个案例类,定义如下。
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."
Multi-Line Strings
多行字符串文字是用三引号“”“......”“”括起来的字符序列。 字符序列是任意的,除了它可能只在最后包含三个或更多连续引号字符。
字符不一定是可打印的; 也允许换行或其他控制字符。 这是一个多行字符串文字 -
"""the present string
spans three
lines."""
空值
null值的类型为scala.Null ,因此与每个引用类型兼容。 它表示引用特殊“空”对象的引用值。
转义序列 (Escape Sequences)
在字符和字符串文字中可识别以下转义序列。
转义序列 | 统一 | 描述 |
---|---|---|
\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之间的字符也可以用八进制转义表示,即反斜杠“\”后跟最多三个八进制字符的序列。 以下是显示少数转义序列字符的示例 -
例子 (Example)
object Test {
def main(args: Array[String]) {
println("Hello\tWorld\n\n" );
}
}
编译并执行上述代码时,会产生以下结果 -
输出 (Output)
Hello World