Scala基礎 getOrElse 方法

2021-08-19 16:00:48 字數 629 閱讀 5478

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...