Scala學習筆記之元組 Tuple

2021-07-26 05:24:43 字數 1074 閱讀 1318

元組是scala提供的一種特殊的資料結構,或者說是一塊語法糖,它允許多個不同型別的元素組合在一起被使用,如下所示:

val tup = (1, 3.14, "元組", true)

這是乙個四元組,由4個元素組成。scala目前的版本支援最多22元組。一元組類是存在的,但沒有對應的內建語法,所以單純的用括號把乙個值圍起來沒什麼卵用。零元組也是存在的,就是unit了。

元組有什麼用?請設想,有乙個函式,返回乙個類weather,然後有一天,老闆讓你多返回些資訊,比如有沒有霧霾,能不能外出,而你沒有修改weather的許可權,怎麼辦?通常的辦法是,再建個新類,把weather和新資訊封進去。在scala裡,不需要那麼麻煩,交給元組就好了,把原來的weather和新的資訊用括號包起來,so easy!

返回來的元組要怎麼使用?同樣很簡單,有兩種方式,以最開始給的四元組為例,第一種方式,使用索引:

val tup = (1, 3.14, "元組", true)

println(tup._1)

println(tup._4)

得到的輸出會是這樣的:

1

true

tup: (int, double, string, boolean) = (1,3.14,元組,true)

注意:元組的索引是從1開始的

第二種方式是類似於具名引數一樣,給每個元素起個名字:

val (length, width, height) = (1.3, 0.7, 1.8)
這樣定義之後單獨使用lengthwidthheight都沒有問題。

元組還有一種特定用法,當是二元組時,可以簡單定義成:1 -> "one",等效於(1, "one")

有了元組,將元素組合在一起將不再彆扭和麻煩,**將減少很多不必要的冗餘,更精簡易懂易用。

scala學習筆記3 對映和元組

對映和元組 1 scala中,對映是對偶的集合,可以看做將鍵對映到值的函式,區別在於函式一般用於計算,而對映只做查詢。val scores map alice 10,bob 3,cindy 8 不可變的對映 val scores new scala.collection.mutable.hashma...

Python中序列的內建型別之元組Tup(三)

python的元組是乙個固定的元素集合體,它與列表類似,不同之處在於元組的元素不能修改,由於他不能修改,所以它沒有公升降序之類的功能,並且元組沒有內建方法。而它卻常常被初始定義一些比較固定的元素,方便之後的呼叫,如對話資訊中的文字。元組使用小括號 也可以不使用括號 列表使用方括號。元組建立很簡單,只...

scala學習筆記之函式

函式是一組一起執行乙個任務的語句。函式的宣告 如果你不寫等於號和方法主體,那麼方法會被隱式宣告為 抽象 abstract 包含它的型別於是也是乙個抽象型別。def functionname 引數列表 return type 函式的使用 傳名函式 通過指定函式引數名,並且不需要按照順序向函式傳遞引數 ...