- Scala編程(第5版)
- (德)馬丁·奧德斯基等
- 736字
- 2022-05-06 15:51:35
結語
有了本章中學到的知識,你應該能夠開始用Scala完成小的任務,尤其是腳本。在后續的章節中,我們將深入介紹這些主題,并引入那些可能在這里完全不會涉及的內容。
[1]這個to方法實際上并不返回一個數組,而是返回另一種序列,包括了值0、1和2,然后由for表達式遍歷。序列和其他集合的相關知識將會在第15章講到。
[2]變長的參數列表,又叫作重復參數,將在8.8節介紹。
[3]不需要寫new List,因為在scala.List的伴生對象上定義了一個工廠方法,即“List.apply()”。你會在4.3節讀到更多關于伴生對象的內容。
[4]之所以需要在末尾放一個Nil,是因為::是List類上定義的方法。如果只是寫成1 :: 2 :: 3,則編譯是不會通過的,因為3的類型是Int,而Int類并沒有::方法。
[5]Scala編譯器對元組類型使用了語法糖,使它看起來就像是類型的元組。例如,Tuple2[Int, String]可以用(Int, String)表示。
[6]注意,在Scala 3之前,是通過從1開始的字段名,如_1或_2來訪問元組的元素的。
[7]Scala 3允許創建任意長度的元組。
[8]由于示例3.6中的集是可變的,并不需要對movieSet重新賦值,這就是為什么它可以是val。與此相對應的是,示例3.5中對不可變集使用+=方法時需要對jetSet重新賦值,因此它必須是var。
[9]在示例3.7中,那段顯式的類型參數聲明“[Int, String]”是必需的,因為在沒有對工廠方法傳入任何值的情況下,編譯器無法推斷出映射的類型。與此相反,在示例3.8中,編譯器能夠根據傳入工廠方法的值推斷出類型參數,因此并不需要顯式地給出類型參數。
[10]Scala允許對任何對象調用->等方法(這些對象并沒有聲明這些方法)的機制叫作擴展方法(extension method),這將在第22章中介紹。
[11]有關編譯器如何改寫for表達式的細節將在7.3節及《Scala高級編程》中給出。
[12]Java 8標準類庫引入了Optional類型,不過許多之前已存在的Java類庫仍使用null來表示某個可選值的缺失。
[13]不過我們也可以把Option想象成包含0個(None的情況)或1個(Some的情況)元素的集合。
- 從零開始構建企業級RAG系統
- Deploying Node.js
- LabVIEW 2018 虛擬儀器程序設計
- 自己動手實現Lua:虛擬機、編譯器和標準庫
- JavaScript Unlocked
- PostgreSQL技術內幕:事務處理深度探索
- Java從入門到精通(第4版)
- Designing Hyper-V Solutions
- 人人都是網站分析師:從分析師的視角理解網站和解讀數據
- Building Serverless Applications with Python
- Python編程:從入門到實踐
- 高級語言程序設計(C語言版):基于計算思維能力培養
- 從零開始:UI圖標設計與制作(第3版)
- 大學計算機基礎實訓教程
- Practical Time Series Analysis