天天看點

scala隐式解析機制

1)說明

(1)首先會在目前代碼作用域下查找隐式實體(隐式方法、隐式類、隐式對象)。(一

般是這種情況)

(2)如果第一條規則查找隐式實體失敗,會繼續在隐式參數的類型的作用域裡查找。

類型的作用域是指與該類型相關聯的全部伴生對象以及該類型所在包的包對象。

2)案例實操

//(2)如果第一條規則查找隐式實體失敗,會繼續在隐式參數的類型的作用域裡查找。類型的作用域是指與該類型相關聯的全部伴生子產品,
object TestTransform {
    def main(args: Array[String]): Unit = {
        //(1)首先會在目前代碼作用域下查找隐式實體
        val teacher = new Teacher()
        teacher.eat()
        teacher.say()
    }
    class Teacher {
        def eat(): Unit = {
            println("eat...")
        }
    }
    implicit class XXX(user:Teacher) {
        def say(): Unit = {
            println("say...")
        }
    }
}      

繼續閱讀