У меня есть следующий код для печати чисел от 1 до 9 в буквах
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 intWrapper(num:Int) = new IntToNumber(num)
(1 until 10).foreach(n => println(n.inLetters))
Когда я запускаю этот код, я получаю сообщение об ошибке, когда этот метод недоступен для Long
Script.scala:9: error: value inLetters is not a member of Long
(1 until 10).foreach(n => println(n.inLetters))
^
one error found
Изменение последней строки на
(1 until 10).foreach(n => println(n.toInt.inLetters))
Прекрасно работает.
Может кто-нибудь помочь мне понять Почему это (от 1 до 10) диапазон возвращает Long и не int?