爲了解釋標題問題,隱式參數是函數隱含的函數範圍內的參數嗎?隱式參數值本身是隱式值嗎?
這裏有一個小測試:
object ImplicitTest{
case class Foo()
def myOtherFun()(implicit myfoo: Foo) = {
val grabImpFoo = implicitly[Foo]
println(myfoo.toString + " from myOtherFun")
}
}
import ImplicitTest._
class ImplicitTest {
def myFun()(implicit myfoo: Foo) = {
println(myfoo.toString)
myOtherFun()
}
}
現在運行它:
implicit val foo = Foo()
val it = new ImplicitTest()
it.myFun()
這似乎表明,我認爲隱含參數本身是隱含的,因爲myOtherFun
可以找到一個隱含參數,我做到了一段時間不相信是這樣的!我認爲這有利有弊,但我只是在這裏瞭解事實;我看着http://docs.scala-lang.org/tutorials/FAQ/finding-implicits.html(根據Passing scala.math.Integral as implicit parameter),並沒有看到任何提及這個事實,如果我正確地理解事情。
雖然你的問題到底是什麼? –
標題,但是爲了解釋,函數的隱式參數是隱式函數的範圍內的參數嗎? – bbarker