我正在尝试学习Scala,所以任何人都可以告诉我如何在scala中转换以下内容:
for (int t = 0; true; t++)
提前谢谢你。
答案 0 :(得分:19)
使用命令式样式,您可以编写(就像在Java中一样):
var t = 0
while(true) {
t+=1
...
}
懒惰功能可能是:
def ints(n: Int = 0): Stream[Int] = Stream.cons(n, ints(n+1))
ints().map(t => ...)
使用内置功能:
Iterator.from(0).map ( t => .... )
具有这种无限结构的常见用例是采用无限流或迭代器,对其执行一些操作,然后获取一些结果:
Iterator.from(0).filter(t => t % 1 == 0).map(t => t*t).take(10).toList
答案 1 :(得分:8)
正如我在评论中提到的,您的问题似乎没有多大意义 - 请添加更多细节。
目前,我能提出的最接近的Scala翻译是:
Stream from 0
答案 2 :(得分:4)
您可以使用while或for。
您可以使用
for(i<-0 to 100) {
println(i)
}
或者直到你想要增加N数
时才使用for(i <- 5 until 55 by 5) {
println(i)
}
或者你最好在
时使用var i = 0
while(true) {
...
i+=1
}
或者也可以
var i = 0
do {
...
i += 1
} while(true)
看看:http://www.simplyscala.com/ 并自己测试
此外,在我的博客中,我做了一些关于命令式scala的帖子,我在那里使用了while循环,你可以看看那里。
答案 3 :(得分:2)
scala中的一个简单的理解主要是这样的:
for (i <- 0 until 10) {
// do some stuff
}