0
假設我有兩個特定的object
從中檢索導入。假定這兩個對象都有我想要使用的多個有用的導入。我只包括1這個例子簡單:在編譯時指定法律和/或非法含義?
scala> object Implicits1 { implicit def good: String => Int = _ => 42 }
defined object Implicits1
scala> object Implicits2 { implicit def bad: String => Int = _ => 666 }
defined object Implicits2
然後,給出foo
:
scala> def foo(x: Int): Int = x
foo: (x: Int)Int
我作通配符進口獲得implicits:
scala> import Implicits1._
import Implicits1._
scala> import Implicits2._
import Implicits2._
上運行foo(".")
REPL顯示Implicits2.bad
的隱含已解決:
scala> foo(".")
res0: Int = 666
但是,我其實想要Implicits1.good
,而不是Implicits2.bad
。
som-snytt和Shadowlands教育我如何處理通配符導入 - Wildcard Import, then Hide Particular Implicit?。
但是,我可以在編譯時指定允許或禁止特定含義嗎?