與其他靜態型別程式語言一樣,在 Scala 中,您可以在建立新變數時宣告一個型別
val x: Int = 1
val y: Double = 1
在這些範例中,型別被明確宣告為 Int
和 Double
。然而,在 Scala 中,您通常不必在定義值繫結時宣告型別
val a = 1
val b = List(1, 2, 3)
val m = Map(1 -> "one", 2 -> "two")
當您這麼做時,Scala 會推論型別,如下列 REPL 互動所示
scala> val a = 1
val a: Int = 1
scala> val b = List(1, 2, 3)
val b: List[Int] = List(1, 2, 3)
scala> val m = Map(1 -> "one", 2 -> "two")
val m: Map[Int, String] = Map(1 -> one, 2 -> two)
事實上,大多數變數都是這樣定義的,而 Scala 自動推論型別的能力是讓它感覺像動態型別語言的一個功能。
此頁面的貢獻者
內容
- 簡介
- Scala 特色
- 為什麼選擇 Scala 3?
- Scala 初體驗
- Hello, World!
- REPL
- 變數和資料類型
- 控制結構
- 網域建模
- 方法
- 一級函式
- 單例物件
- 集合
- 情境抽象
- 頂層定義
- 摘要
- 初探類型
- 字串內插
- 控制結構
- 網域建模
- 工具
- OOP 建模
- FP 建模
- 方法
- 方法特色
- Scala 3 中的主要方法
- 摘要
- 函式
- 匿名函式
- 函式變數
- Eta 展開
- 高階函式
- 撰寫自己的 map 方法
- 建立回傳函式的函式
- 摘要
- 封裝和導入
- Scala 集合
- 集合類型
- 集合方法
- 摘要
- 函式程式設計
- 什麼是函式程式設計?
- 不可變值
- 純函式
- 函式是值
- 函式錯誤處理
- 摘要
- 類型和類型系統
- 推論型別
- 泛型
- 交集類型
- 聯集類型
- 代數資料類型
- 變異性
- 不透明類型
- 結構類型
- 依賴函式類型
- 其他類型
- 情境抽象
- 擴充方法
- 情境參數
- 情境界限
- Given 導入
- 類型類別
- 多重宇宙等式
- 隱式轉換
- 摘要
- 並行處理
- Scala 工具
- 使用 sbt 建置和測試 Scala 專案
- 工作表
- 與 Java 互動
- Java 開發人員的 Scala
- JavaScript 開發人員的 Scala
- Python 開發人員的 Scala
- 下一步該怎麼做