天天看點

scala 隐式值和隐式參數組合代碼示例

普通方法或者函數中的參數可以通過 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!
    }
}      

繼續閱讀