考慮這種情況下類:使用明確的價值
case class IntPrinter(implicit val i: Int) {
def print()(implicit i: Int) = println(i)
}
我可以例如,它明確地傳遞一個值,像這樣的隱含參數:
val p = IntPrinter()(9)
我在IRC中被告知,從現在起,明確通過的值將在被調用時被隱式傳遞以打印,但情況並非如此:
p.print()
error: could not find implicit value for parameter i: Int
我做錯了什麼或者我誤解了/被給出了不正確的信息?有什麼辦法可以做到這一點?
編輯:事實上它按預期工作的一個問題,如果我輸入p._
這樣的:
import p._
p.print()
這的確打印9
。
這是正確的行爲嗎?聽起來像使用import
是個不好的主意嗎?我該如何解決這個問題?
確保進口'的原因p._'的工作原理是因爲您只是將'case'類IntPrinter(隱式val i:Int)'帶入作用域。但是......這個「我」在課堂上已經是「範圍內」了;你不需要做任何特殊的事情來訪問它。 – Destin 2012-04-15 18:47:20