Groovy相当于Scala视图

时间:2015-11-28 05:32:52

标签: scala groovy

我正在尝试将此Scala代码转换为Groovy:

val r = BigInt(2).pow(1000).toString.view.map(_.asDigit).sum

对于groovy,“view”相当于什么?

2 个答案:

答案 0 :(得分:0)

Java8带来chars()(基本上是一个迭代器),你可以减少总和:

groovy:000> 2G.pow(1000).toString().chars().reduce(0){ a,b -> a+b-48 }
===> 1366

或更接近您的Scala代码(地图,总和):

groovy:000> 2G.pow(1000).toString().chars().map{ it-48 }.sum()
===> 1366

魔法48是“0”的ascii。

作为一般答案:groovy中的许多功能方法都倾向于实现结果,但Java 8流也很容易从Groovy中使用。

答案 1 :(得分:0)

def result = new BigInteger(2).pow(1000).toString().toCharArray().toList().sum { it - 48 }

def result1 = 2g.pow(1000).toString().toCharArray().toList().sum { it - 48 }
相关问题