你能在repl中取消导入隐式模块吗?
假设我这样做:
scala> import scala.math.BigInt._
import scala.math.BigInt._
scala> :implicits
/* 2 implicit members imported from scala.math.BigInt */
/* 2 defined in scala.math.BigInt */
implicit def int2bigInt(i: Int): scala.math.BigInt
implicit def long2bigInt(l: Long): scala.math.BigInt
然后决定这是一个巨大的错误。我该如何从当前范围中删除这些 implicits?
我的当前技术是中止 REPL,然后启动一个新的 REPL,我很想避免重复这样做。
implicit def int2bool = Unit
获得了相同的效果。 - Dan Midwoodimplicit def int2bool = ()
,不过我的观点是 任何东西 都可以。我创建了一个新的 trait 来确保无论隐式提供的东西在哪里都不会被需要。(= Unit
表示“返回到Unit
类型的伴生对象;独特的Unit
值()
可能会隐含地在某个地方中使用,但较少可能需要伴生对象。) - Rex KerrIJustMadeThisUp
或其他任何名称-- 并且不使用它是确定它不会与任何地方匹配的最安全方法! - Rex Kerr