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 }

 

转载于:https://www.cnblogs.com/keepthinking/p/3880043.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值