getorelse()主要就是防範措施,如果有值,那就可以得到這個值,如果沒有就會得到乙個預設值,個人認為早開發過程中用getorelse()方法要比用get()方法安全得多。
def getorelse[b1 >: b](key: a, default: => b1): b1 = get(key) match
從api中可以看出,傳入的引數是(key,default)這種形式,返回值是:如果有key那就get(key),如果沒有,就返回default,再看看get()方法:
def get(key: a): option[b]
傳入乙個key,得到這個key的對映。注意:如果單獨呼叫get()方法,這裡返回的是乙個option,如果要返回值需要繼續get:get().get
看乙個簡單的例子:
object test5
}
得到的結果:
one
twodefault
很顯然,當你想獲得1,2的value的時候,map中是有值的,是可以獲得的,而當你想獲得3的值,map中並不存在,只能獲得預設值。你想getorelse的值必然是乙個鍵值對的形式。 scala練習題 Scala基礎
1 在scala repl中,計算3的平方根,然後再對該值求平方。現在,這個結果與3相差多少?scala scala.math.sqrt 3 warning there were 1 deprecation warnings re run with deprecation for details r...
Scala基礎學習 scala集合 005
定長陣列 println test val a new array string 5 a.length a 0 hello 賦值 a 1 取值 b 1 flink 可以修改值,並沒有修改指標 val c array 1,2,3,4,5,6 c.mkstring 轉換為字串 c.mkstring c....
scala快速上手 二 Scala 基礎
定義變數和常量 變數 用 var 定義 可修改 常量 用 val 定義,不可修改 var name zhangsan println name name lisi println name val gender m gender m 錯誤,不能給常量再賦值 class person object l...