指南和概述

語言

標準函式庫

涵蓋 Scala 標準函式庫的指南和概述。

此頁面說明集合使用者遷移至 Scala 2.13 的主要變更,並說明如何使用 Scala 2.11/2.12 和 2.13 交叉建置專案。

由 Julien Richard-Foy 撰寫

這些頁面說明 Scala 2.13 中引入的集合架構。相較於集合 API,您將進一步了解架構的內部運作。

由 Martin Odersky、Lex Spoon 和 Julien Richard-Foy 撰寫

在此文件中,您將學習集合架構如何協助您使用幾行程式碼定義自己的集合,同時重複使用架構中絕大部分的集合功能。

由 Julien Richard-Foy 撰寫

本指南說明如何撰寫可套用於任何集合類型並傳回相同集合類型的運算,以及如何撰寫可依要建置的集合類型參數化的運算。

語言

涵蓋 Scala 語言中功能的指南和概觀。

作者:Adrien Piquerez

您需要了解的關於 Scala 3 相容性和遷移的一切。

Scala 3 的新功能
作者:Nicolas Stucki

詳細教學,涵蓋在 Scala 3 中撰寫巨集時涉及的所有功能。

作者:Mark Harrah

值類別是 Scala 中一種新的機制,用於避免配置執行時期物件。這是透過定義新的 AnyVal 子類別來完成的。

Scala 3 的新功能
作者:Alvin Alexander

TASTy 格式的概觀,目標是 Scala 語言的最終使用者。

字串內插允許使用者將變數參照直接內嵌在已處理的字串文字中。以下是一個範例

val name = "James"
  println(s"Hello, $name")  // Hello, James
在上述範例中,文字 s"Hello, $name" 是已處理的字串文字。這表示編譯器會對此文字執行一些額外的處理。已處理的字串文字會以一組字元表示,這些字元會出現在「.」之前。字串內插是由 SIP-11 引進的,其中包含所有實作的詳細資料。

作者:Josh Suereth

Scala 2.10 引進了一項稱為隱式類別的新功能。隱式類別是一種標記有 implicit 關鍵字的類別。此關鍵字會讓類別的主要建構函式在類別處於作用範圍內時可供隱式轉換使用。

已封存
作者:Alvin Alexander

Scala 語言的入門簡介,重點放在 Scala 2。現在已更新為 Scala 3,我們正在合併這兩者。

撰寫函式庫

為 Scala 生態系統提供開源函式庫的指南。

由 Julien Richard-Foy 撰寫

列出函式庫作者在發布和記錄其函式庫時應設定的所有工具。

平行和並行程式設計

涵蓋 Scala 中用於並行和並發程式設計的部分函式庫的完整指南。

作者:Philipp Haller、Aleksandar Prokopec、Heather Miller、Viktor Klang、Roland Kuhn 和 Vojin Jovanovic

未來提供了一種方法,可以有效且非封鎖的方式,對執行多項操作進行推理。未來是一個佔位符物件,表示可能尚未存在的某個值。通常,未來值會並發提供,並可在隨後使用。以這種方式組合並發任務往往會產生更快速、非同步且非封鎖的並行程式碼。

相容性

什麼與什麼相容(或不相容)。

哪些 Scala 版本可在哪些 JDK 版本上執行

當兩個 Scala 版本二進位相容時,可以在一個 Scala 版本上編譯專案,並在執行時連結到另一個 Scala 版本。安全的執行時連結(僅限於此!)表示,在混合情境中執行程式時,JVM 不會擲出 LinkageError(或其子類別),假設在編譯和執行於相同 Scala 版本時不會發生此錯誤。具體來說,這表示您可以在執行時類別路徑中擁有外部依賴項,這些依賴項使用與編譯時不同的 Scala 版本,只要它們二進位相容即可。換句話說,與在相同 Scala 版本上編譯和執行所有內容相比,在不同的二進位相容版本上進行個別編譯不會造成問題。

多樣且全面的函式庫對任何高效能的軟體生態系統都很重要。雖然開發和散布 Scala 函式庫很容易,但良好的函式庫作者不只寫程式碼並發布它。在本指南中,我們將探討二進位相容性的重要主題。

工具

有關 Scala REPL 和 Scaladoc 產生等核心 Scala 工具的參考文件。

Scala REPL 是用於評估 Scala 中表達式的工具(scala)。

scala 指令會將原始碼腳本包裝在範本中,然後編譯並執行產生的程式

已更新
Krzysztof Romanowski、Aleksander Boruch-Gruszecki、Andrzej Ratajczak、Kacper Korban、Filip Zybała 合著

Scala 3 中 Scala API 文件產生工具的更新。

編譯器

涵蓋 Scala 編譯器的指南和概觀:編譯器外掛程式、反射和巨集等元程式設計工具。

已在 Scala 3 中移除
Heather Miller、Eugene Burmako 和 Philipp Haller 合著

Scala 的執行時期/編譯時期反射架構。

內容
Lex Spoon 和 Seth Tisue 合著

編譯器外掛程式允許自訂和擴充 Scala 編譯器。本教學課程說明外掛程式功能,並逐步引導您建立一個簡單的外掛程式。

社群提供

各種選項,用於控制 scalac 編譯程式碼的方式。

Torsten Schmits 著

一個提供更友善使用者錯誤訊息的新引擎,列印相依隱含項鍊和彩色的已找到/必需類型差異。

由 Lukas Rytz 和 Andrew Marki

編譯器可以執行各種最佳化。

傳統

涵蓋不再與近期 Scala 版本 (2.12+) 相關的功能指南。

由 Martin Odersky 和 Lex Spoon

這些頁面詳細描述 Scala 集合架構。與集合 API 相比,您將會進一步了解架構的內部運作。您還將會了解此架構如何協助您使用幾行程式碼定義自己的集合,同時重複使用架構中絕大部分的集合功能。