6
把这个代码:Scala的隐式转换范围发出
class Register(var value:Int = 0) {
def getZeroFlag() : Boolean = (value & 0x80) != 0
}
object Register {
implicit def reg2int(r:Register):Int = r.value
implicit def bool2int(b:Boolean):Int = if (b) 1 else 0
}
我想使用它,像这样:
val x = register.getZeroFlag + 10
,但我与打招呼:
type mismatch; found : Boolean required: Int
什么去?我是否需要定义一个隐式函数来返回一个布尔值?
神奇。这很好地解释了范围界定。 –
我刚才发现,对象上的._对于导入Object中定义的东西是必要的。认为这将是“隐含的”(双关意图) – drame