将Java转换为Scala

时间:2012-05-08 12:03:56

标签: java scala

我正在尝试学习Scala,所以任何人都可以告诉我如何在scala中转换以下内容:

for (int t = 0; true; t++)

提前谢谢你。

4 个答案:

答案 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循环,你可以看看那里。

http://carlosqt.blogspot.com/search/label/Scala

答案 3 :(得分:2)

scala中的一个简单的理解主要是这样的:

for (i <- 0 until 10) {
  // do some stuff
}