Scala match 变量
昨天写 Scala 的时候,使用 match(相当于 switch)时,运行结果很奇怪。
1 var i: Int = 0 2 while (i < items.length) { 3 i % width match { 4 case offset => println("offset: " + items(i)) 5 case logSize => println("logSize: " + items(i)) 6 case lag => println("lag: " + items(i)) 7 case _ => 8 } 9 i = i + 1 10 }
后看到:http://stackoverflow.com/questions/7078022/why-does-pattern-matching-in-scala-not-work-with-variables
在 Scala 中,match 的必须是 stable identifier,不明所以,以后研究。
改成如下即可:
1 var i: Int = 0 2 while (i < items.length) { 3 i % width match { 4 case `offset` => println("offset: " + items(i)) 5 case `logSize` => println("logSize: " + items(i)) 6 case `lag` => println("lag: " + items(i)) 7 case _ => 8 } 9 i = i + 1 10 }