Scala 對映和元組
阿新 • • 發佈:2018-12-08
1. 構建對映
val scores = Map("Alice" ->10, "Bob" -> 3, "Clindy" ->8)
上述程式碼構建的Map,其值不能被改變,構建可變對映,則用:
val scores = scala.collection.mutable.Map"Alice" ->10, "Bob" -> 3, "Clindy" ->8)
也可用以下方式定義對映:
var scores = Map(("Alice", 10), ("Bob", 3), ("Cindy", 8))
2.獲取對映中的值
val bobsScore = scores("Bob" )
// 類似於Java中的scores.get("Bob")
// 檢查對映中是否包含某鍵值,可用contions方法
scores.contions("Bob")
// return True
val bobsScore = scores.getOrElse("Bob", 0)
// 如果對映包含鍵"Bob",返回對應的值;否則,返回0
3.更新對映中的值
scores("Bob") = 10 // scores必須為可變對映
scores("Fred") = 7 //增加新的鍵並賦值
// 可用+=操作來新增多個關係(不可變對映也可以)
scores += ("Bob" -> 10, "Fred" -> 7)
// 移除某個鍵,可用-=
score -= "Alice"
// 雖然不能更新不可變對映,但可是新建不可變對映的方法實現更新(曲線救國)
var newScores = scores + ("Bob" -> 10, "Fred" -> 7) // 更新過的新對映
// newScores對映包含了與scores相同的對映關係,此外"Bob"被更新,"Fred"被新增進來
除了把結果作為新值儲存外,也可以直接更新var變數:
var scores = ...
scores = scores + ("Bob" -> 10, "Fred" -> 7)
4.迭代對映
for ((key, value) <- Map)
// 獲取對映鍵集合
scores.keySet
// 獲取對映值,return Iterable
scores.values
5.元組
對映是鍵/值對偶的集合。對偶是元組(tuple)的最簡單形態——元組是不同型別的值的聚集。
val t = (1, 3.14, "Fred")
// 可以用_1,_2,_3訪問其組元
val second = t._2 // 將second設為3.14,其中t._2也可寫為t _2(.替換為空格)
val (first, second, third) = t // 將first設為1,second設為3.14,third設為"Fred"
val (first, second, _) = t // 只返回部分