我在看一个教程,在
http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-4
我知道,本教程是2008年1月的,但是如果这有什么不同的话,我将使用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.IndexOutboundsException中的异常
在scala.collection.LinearSeqOptimized$class.apply上(LinearSeqOptimized.scala:53)
在scala.collection.immutable.List.apply上(List.scala:45)
再加上185行追踪,解释器退出。
这个错误消息是什么意思,有人能告诉我上面的代码有什么问题吗?