📜  Scala-数据类型

📅  最后修改于: 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用于字面量的规则既简单又直观。本节说明所有基本的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."""

空值

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