官术网_书友最值得收藏!

結語

有了本章中學到的知識,你應該能夠開始用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的情況)元素的集合。

主站蜘蛛池模板: 伊吾县| 汾西县| 巩义市| 乃东县| 文水县| 绵阳市| 安阳市| 淮北市| 梨树县| 政和县| 平昌县| 巨野县| 民和| 宿迁市| 达尔| 钦州市| 洪泽县| 莫力| 汉沽区| 丹东市| 镇雄县| 涟源市| 洪雅县| 上犹县| 吉林省| 红桥区| 彩票| 萍乡市| 化德县| 亚东县| 溧阳市| 平乐县| 江川县| 清水河县| 仪陇县| 芦溪县| 修武县| 那坡县| 潮安县| 汾阳市| 西宁市|