普通方法或者函數中的參數可以通過 implicit 關鍵字聲明為隐式參數,調用該方法時,就可以傳入該參數,編譯器會在相應的作用域尋找符合條件的隐式值。
1)說明
(1)同一個作用域中,相同類型的隐式值隻能有一個
(2)編譯器按照隐式參數的類型去尋找對應類型的隐式值,與隐式值的名稱無關。
(3)隐式參數優先于預設參數
2)案例實操
str
是隐式值
arg
是隐式參數
這兩者是組合使用的
object TestImplicitParameter {
implicit val str: String = "hello world!"
def hello(implicit arg: String="good bey world!"): Unit = {
println(arg)
}
def main(args: Array[String]): Unit = {
// hello() //good bey world!
hello //hello world!
}
}