Ответ 1
Я изменил имя вашего неявного преобразования на intWrapperX
. Следующий сеанс показывает фиксированный пример.
Проблема заключается в том, что тэги intWrapper
shadows scala.Predef.intWrapper(i:Int): RichInt
, необходимые для создания объекта Range
. Я оставляю объяснение, почему обратное к Long
(или предположительно RichLong
) подходит комментаторам.
scala> :paste
// Entering paste mode (ctrl-D to finish)
class IntToNumber(num:Int) {
val digits = Map("1" -> "one", "2" -> "two", "3" -> "three", "4" -> "four", "5" -> "five", "6" -> "six", "7" -> "seven", "8" -> "eight", "9" -> "nine")
def inLetters():String = {
digits.getOrElse(num.toString,"")
}
}
implicit def intWrapperX(num:Int) = new IntToNumber(num)
// Exiting paste mode, now interpreting.
defined class IntToNumber
intWrapperX: (num: Int)IntToNumber
scala> (1 until 10).foreach(n => println(n.inLetters))
one
two
three
...