Scala具有与Java相同的所有数据类型,具有相同的内存占用和精度.下面的表格提供了Scala : 中可用的所有数据类型的详细信息;
Sr.No | 数据类型&描述 |
---|---|
1 | 字节 8位有符号值.范围从-128到127 |
2 | 短 16位有符号值.范围-32768到32767 |
3 | Int 32位有符号值.范围-2147483648至2147483647 |
4 | 长 64位有符号值. -9223372036854775808至9223372036854775807 |
5 | Float 32位IEEE 754单精度浮点数 |
6 | Double 64位IEEE 754双精度浮点数 |
7 | Char 16位无符号Unicode字符.范围从U + 0000到U + FFFF |
8 | 字符串 一系列字符 |
9 | 布尔 字面值为true或字面值为false |
10 | 单位 对应无值 |
11 | 空 null或空引用 |
12 | 无/b> 每种其他类型的子类型;不包含值 |
13 | 任何 任何类型的超类型;任何对象的类型为任何 |
14 | AnyRef 任何参考类型的超类型 |
上面列出的所有数据类型都是对象. Java中没有原始类型.这意味着您可以在Int,Long等上调用方法.
Scala Basic Literals
Scala用于文字的规则简单直观.本节介绍了所有基本的Scala文字.
Integral Literals
整数文字通常是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的简写.符号( "X").符号是一个案例类,定义如下.
package scalafinal case class Symbol private (name: String) { override def toString: String = "'" + name}
字符文字
字符文字是用引号括起来的单个字符.该字符是可打印的Unicode字符或由转义序列描述.这里有一些字符文字 :
'a''\ u0041''\ n''\t'
字符串文字
字符串文字是双引号中的字符序列.字符是可打印的Unicode字符或由转义序列描述.这里有一些字符串文字 :
"Hello,\nWorld!""This string contains a character."
多行字符串
多字符串-line string literal是一个用三引号"""......"""括起来的字符序列.字符序列是任意的,只是它最后只能包含三个或更多个连续的引号字符.
字符不一定是可打印的;也可以使用换行符或其他控制字符.这是一个多行字符串文字 :
"""the present stringspans threelines."""
空值
null值的类型为 scala.Null ,因此与每个引用类型兼容.它表示引用特殊"null"对象的引用值.
转义序列
以下转义序列在字符和字符串文字中被识别.
Unicode在0到255之间的字符也可以用八进制转义表示,即反斜杠""后跟最多三个八进制字符的序列.以下是显示少数转义序列字符的示例 :
示例
object Test { def main(args: Array[String]) { println("Hello\tWorld\n\n" ); }}
编译并执行上述代码时,会产生以下结果 :
输出
Hello World
转义序列 | Unicode | 描述 |
---|---|---|
\\ \\ b | \ u0008 | 退格BS |
\t | \ u0009 | 水平标签HT |
\ n | \ u000c | formfeed FF |
\f | \\\ | formfeed FF |
\ r | \\\ | 回车CR |
" | \ u0022 | 双引号" |
\' | \ u0027 | 单引号. |
\\ | \ u005c | 反斜杠\ |