Scala 数据类型

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 null或空引用
12 Nothing 任何其他类型的子类型; 包括无值
13 Any 任何类型的超类型; 任何对象都是类型Any
14 AnyRef 任何引用类型的超类型

上面列出的所有数据类型都是对象。与Java不同,Scala没有原始类型。这意味着您可以在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 是布尔类型的成员。

符号字面值

符号字面值 ‘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."""

空值

空值的类型为 scala.Null 与每个引用类型兼容。它表示一个引用值,指向一个特殊的“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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程