Возьмите этот код:
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
Что происходит? Нужно ли мне определять неявное взятие функции, которая возвращает логическое значение?