好吧,所以我正在做一些测试来熟悉Scala,并且想看看我是否可以制作列表Java风格而不是你在Scala中做的奇特方式...
我知道你可以这样做:val lst = List.range(0, 100, 1)但我只想看看scala中的java风格
好吧,这就是我的所作所为:
var lst = List[Int]()
for(i <- 0 until 100) {
lst = lst :: i // here's where it complains
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,scala,或者至少是eclipse的scala ide不喜欢我使用中缀符号附加,a-la lst :: i它希望我这样做:lst.::(i)否则它说::没有定义或什么,它不是第一个它发生的时间要么......
那么这里的任何人都可以解释它为什么这样做,或者它只是在eclipse中执行不良的情况,因此我必须忍受
中缀表示法不是问题.相反,这是因为方法名结尾:被应用为
a ??: b
b.??:(a)
Run Code Online (Sandbox Code Playgroud)
所以你只是向后反驳你的论点.
lst = i :: lst
Run Code Online (Sandbox Code Playgroud)
会很好的.
(当然,你有一个问题,列表就像堆栈一样,所以你需要按相反的顺序推送数字.)