我正在尝试学习 Scala,所以任何人都可以告诉我如何在 scala 中转换以下内容:
for (int t = 0; true; t++)
先感谢您。
使用命令式风格,您可以编写(就像在 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
正如我在评论中提到的,您的问题似乎没有多大意义 - 请添加更多细节。
目前,我能想到的最接近的 Scala 翻译是:
Stream from 0
您可以使用 while 或 for。
您可以用于
for(i<-0 to 100) {
println(i)
}
或者你使用直到你想增加 N 个数
for(i <- 5 until 55 by 5) {
println(i)
}
或者你最好使用 while
var i = 0
while(true) {
...
i+=1
}
或同时做
var i = 0
do {
...
i += 1
} while(true)
看看:http ://www.simplyscala.com/ 并自己测试一下
另外,在我的博客中,我写了一些关于命令式 scala 的文章,其中我使用了 for 和 while 循环,你可以在那里看看。
scala 中的简单理解主要是这样的:
for (i <- 0 until 10) {
// do some stuff
}