我正在解决“Scala for the Impatient”书中的一些练习题之一:
编写一个 for
循环来计算字符串中所有字母的 Unicode 码的乘积。例如,"Hello" 中字符的乘积为 9415087488 L。
下一个问题是不使用 for
循环完成相同的任务 - 提示我们应该在 Scaladoc 中检查 StringOps
。
我在 Scaladoc 的 RichChar
和 StringOps
部分中进行了检查,也许我正在错误地阅读或寻找错误的地方,但我找不到任何可以让我匹配他们输出的东西。到目前为止,我尝试了以下方法:
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循环的情况下进行匹配,使得它们的输出不匹配?
谢谢!