У меня есть следующий код для печати чисел от 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?