因此,我正在完成“不耐烦的 Scala”中的一些练习,其中之一是:
编写一个for
循环来计算字符串中所有字母的 Unicode 代码的乘积。例如,“你好”中的字符的乘积是 9415087488 L。
下一个问题是做同样的事情,但没有for
循环——它暗示我们应该检查StringOps
Scaladoc。
我检查了Scaladoc 中的RichChar
andStringOps
部分,也许我误读或看错了地方,但我找不到任何可以让我匹配他们的输出的东西。到目前为止,我已经尝试过:
scala> x.foldLeft(1)(_ * _.toInt)
res0: Int = 825152896
scala> x.foldLeft(1)(_ * _.getNumericValue)
res5: Int = 2518992
scala> x.foldLeft(1)(_ * _.intValue())
res6: Int = 825152896
scala> var x = 1
x: Int = 1
scala> for (c <- "Hello") x *= c.toInt
scala> x
res12: Int = 825152896
这与他们的输出不匹配。
我如何做到这一点,无论是方式for
还是非for
方式?
谢谢!