- Scala Tutorial
- Scala - Home
- Scala - Overview
- Scala - Environment Setup
- Scala - Basic Syntax
- Scala - Data Types
- Scala - Variables
- Scala - Classes & Objects
- Scala - Access Modifiers
- Scala - Operators
- Scala - IF ELSE
- Scala - Loop Statements
- Scala - Functions
- Scala - Closures
- Scala - Strings
- Scala - Arrays
- Scala - Collections
- Scala - Traits
- Scala - Pattern Matching
- Scala - Regular Expressions
- Scala - Exception Handling
- Scala - Extractors
- Scala - Files I/O
- Scala Useful Resources
- Scala - Quick Guide
- Scala - Useful Resources
- Scala - Discussion
Scala - 数据类型
Scala 具有与 Java 相同的数据类型,具有相同的内存占用和精度。下表给出了 Scala 中所有可用数据类型的详细信息 -
先生编号 | 数据类型和描述 |
---|---|
1 |
字节 8 位有符号值。范围从 -128 到 127 |
2 |
短的 16 位有符号值。范围 -32768 至 32767 |
3 |
INT 32 位有符号值。范围 -2147483648 至 2147483647 |
4 |
长的 64 位有符号值。-9223372036854775808 至 9223372036854775807 |
5 |
漂浮 32 位 IEEE 754 单精度浮点数 |
6 |
双倍的 64 位 IEEE 754 双精度浮点数 |
7 |
查尔 16 位无符号 Unicode 字符。范围从 U+0000 到 U+FFFF |
8 |
细绳 字符序列 |
9 |
布尔值 字面意义上的 true 或字面意义上的 false |
10 |
单元 对应无值 |
11 |
无效的 空引用或空引用 |
12 |
没有什么 所有其他类型的子类型;不包含任何值 |
13 |
任何 任何类型的超类型;任何对象都是Any类型 |
14 |
任意引用 任何引用类型的超类型 |
上面列出的所有数据类型都是对象。没有像 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
布尔文字
布尔文字true和false是 Boolean 类型的成员。
符号文字
符号文字 'x 是表达式scala.Symbol("x")的简写。Symbol是一个case类,其定义如下。
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,因此与每个引用类型兼容。它表示一个引用值,引用一个特殊的“null”对象。
转义序列
以下转义序列可在字符和字符串文字中识别。
转义序列 | 统一码 | 描述 |
---|---|---|
\b | \u0008 | 退格键 |
\t | \u0009 | 水平标签 HT |
\n | \u000c | 换页 FF |
\F | \u000c | 换页 FF |
\r | \u000d | 回车 CR |
\" | \u0022 | 双引号“ |
\' | \u0027 | 单引号。 |
\\ | \u005c | 反斜杠\ |
Unicode 介于 0 和 255 之间的字符也可以用八进制转义符表示,即反斜杠“\”后跟最多三个八进制字符的序列。以下是显示一些转义序列字符的示例 -
例子
object Test { def main(args: Array[String]) { println("Hello\tWorld\n\n" ); } }
当上面的代码被编译并执行时,它会产生以下结果 -
输出
Hello World