
- 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 - Options
- Scala 模式匹配
- Scala - 模式匹配
- Scala - 異常處理
- Scala - 提取器
- Scala - 正則表示式
- Scala 檔案 I/O
- Scala - 檔案 I/O
- Scala 高階概念
- Scala - 閉包
- Scala - 特質
- Scala 有用資源
- Scala - 快速指南
- Scala - 線上編譯器
- Scala - 有用資源
- Scala - 討論
Scala - 元組
Scala 元組將固定數量的專案組合在一起,以便可以將它們作為一個整體傳遞。與陣列或列表不同,元組可以儲存不同型別的物件,但它們也是不可變的。
以下是包含整數、字串和控制檯的元組示例。
val t = (1, "hello", Console)
這是以下內容的語法糖(快捷方式):
val t = new Tuple3(1, "hello", Console)
元組的實際型別取決於它包含的元素數量和這些元素的型別。因此,(99, "Luftballons") 的型別是 Tuple2[Int, String]。(‘u’, ‘r’, "the", 1, 4, "me") 的型別是 Tuple6[Char, Char, String, Int, Int, String]
元組的型別是 Tuple1、Tuple2、Tuple3 等。在 Scala 中,目前上限為 22,如果您需要更多,則可以使用集合,而不是元組。對於每個 TupleN 型別(其中 1 <= N <= 22),Scala 定義了許多元素訪問方法。給出以下定義:
val t = (4,3,2,1)
要訪問元組 t 的元素,可以使用方法 t._1 訪問第一個元素,t._2 訪問第二個元素,依此類推。例如,以下表達式計算 t 的所有元素的總和。
val sum = t._1 + t._2 + t._3 + t._4
您可以使用 Tuple 編寫一個方法,該方法接受 List[Double] 並返回一個三元素元組 Tuple3[Int, Double, Double] 中的計數、總和和平方和。它們也可用於在併發程式設計中將資料值列表作為訊息傳遞給參與者之間。
嘗試以下示例程式。它演示瞭如何使用元組。
示例
object Demo { def main(args: Array[String]) { val t = (4,3,2,1) val sum = t._1 + t._2 + t._3 + t._4 println( "Sum of elements: " + sum ) } }
將上述程式儲存到 **Demo.scala** 中。以下命令用於編譯和執行此程式。
命令
\>scalac Demo.scala \>scala Demo
輸出
Sum of elements: 10
迭代元組
您可以使用 **Tuple.productIterator()** 方法迭代元組的所有元素。
嘗試以下示例程式以迭代元組。
示例
object Demo { def main(args: Array[String]) { val t = (4,3,2,1) t.productIterator.foreach{ i =>println("Value = " + i )} } }
將上述程式儲存到 **Demo.scala** 中。以下命令用於編譯和執行此程式。
命令
\>scalac Demo.scala \>scala Demo
輸出
Value = 4 Value = 3 Value = 2 Value = 1
轉換為字串
您可以使用 **Tuple.toString()** 方法將元組的所有元素連線到一個字串中。嘗試以下示例程式以轉換為字串。
示例
object Demo { def main(args: Array[String]) { val t = new Tuple3(1, "hello", Console) println("Concatenated String: " + t.toString() ) } }
將上述程式儲存到 **Demo.scala** 中。以下命令用於編譯和執行此程式。
命令
\>scalac Demo.scala \>scala Demo
輸出
Concatenated String: (1,hello,scala.Console$@281acd47)
交換元素
您可以使用 **Tuple.swap** 方法交換 Tuple2 的元素。
嘗試以下示例程式以交換元素。
示例
object Demo { def main(args: Array[String]) { val t = new Tuple2("Scala", "hello") println("Swapped Tuple: " + t.swap ) } }
將上述程式儲存到 **Demo.scala** 中。以下命令用於編譯和執行此程式。
命令
\>scalac Demo.scala \>scala Demo
輸出
Swapped tuple: (hello,Scala)