- Scala 教程
- Scala - 首页
- Scala - 概述
- Scala - 特性
- Scala - 环境设置
- Scala - 构建工具 (SBT)
- Scala - 基本语法
- 数据类型和变量
- Scala - 数据类型
- Scala - 变量
- Scala - 字符串
- Scala - 数组
- Scala 运算符
- Scala - 运算符
- Scala - 算术运算符
- Scala - 关系运算符
- Scala - 逻辑运算符
- Scala - 位运算符
- Scala - 赋值运算符
- Scala 条件语句
- Scala - IF ELSE
- Scala 循环语句
- Scala - 循环语句
- Scala - while 循环
- Scala - do-while 循环
- Scala - for 循环
- Scala - break 语句
- Scala 类和对象
- Scala - 类和对象
- Scala - 访问修饰符
- Scala 方法和函数
- Scala - 函数
- Scala - 按名称调用函数
- Scala - 带有名称参数的函数
- Scala - 带有可变参数的函数
- Scala - 递归函数
- Scala - 默认参数值
- Scala - 高阶函数
- Scala - 嵌套函数
- Scala - 匿名函数
- 部分应用函数
- Scala - 柯里化函数
- Scala 集合
- Scala - 集合
- Scala - 列表
- Scala - 集合
- Scala - 映射
- Scala - 元组
- Scala - 迭代器
- Scala - 选项
- Scala 模式匹配
- Scala - 模式匹配
- Scala - 异常处理
- Scala - 提取器
- Scala - 正则表达式
- Scala 文件 I/O
- Scala - 文件 I/O
- Scala 高级概念
- Scala - 闭包
- Scala - 特质
- Scala 有用资源
- Scala - 快速指南
- Scala - 在线编译器
- Scala - 有用资源
- 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 不同,这里没有原始类型。这意味着您可以对 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 class,定义如下。
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”对象的引用值。
转义序列
在字符和字符串字面量中识别以下转义序列。
转义序列 | Unicode | 描述 |
---|---|---|
\b | \u0008 | 退格 BS |
\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