
- 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