Проблемы с областью неявного преобразования в 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

Что происходит? Нужно ли мне определять неявное взятие функции, которая возвращает логическое значение?

6
задан Dominic Bou-Samra 2 August 2011 в 02:45
поделиться