Я проверял учебник, найденный на http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-4
Этот учебник от Яна.2008, я вижу, но я использую Scala 2.8.0, если это имеет значение.
class Color(val red:Int, val green:Int, val blue:Int)
case class Red(r:Int) extends Color(r, 0, 0)
case class Green(g:Int) extends Color(0, g, 0)
case class Blue(b:Int) extends Color(0, 0, b)
def printColor(c:Color) = c match {
case Red(v) => println("Red: " + v)
case Green(v) => println("Green: " + v)
case Blue(v) => println("Blue: " + v)
case col:Color => {
print("R: " + col.red + ", ")
print("G: " + col.green + ", ")
println("B: " + col.blue)
}
case null => println("Invalid color")
}
При вводе этого в интерпретатор выдает
Исключение в потоке "main"java.lang.IndexOutOfBoundsException в scala.collection.LinearSeqOptimized $ class.apply (LinearSeqOptimized.scala: 53) в scala.collection.immutable.List.apply (List.scala: 45)
плюс еще 185 строктрассировки, и интерпретатор завершает работу.
Что означает это сообщение об ошибке, и может ли кто-нибудь сказать мне, что не так с кодом выше?