6
Weź ten kod:Scala niejawny zakres konwersji wystawia
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
}
chcę użyć go tak:
val x = register.getZeroFlag + 10
ale jestem witany z:
type mismatch; found : Boolean required: Int
Co się dzieje? Czy muszę zdefiniować niejawne podejmowanie funkcji, która zwraca bool?
fantastyczne. To naprawdę dobrze wyjaśnia zakres. –
Właśnie zorientowałem się, że ._ na obiekcie jest konieczne do importowania rzeczy zdefiniowanych w obiekcie. Myślałem, że to będzie "implicit" (kalambur przeznaczony) – drame