Итак, я работаю над несколькими упражнениями в "Scala для нетерпимого", и один из них:
Напишите цикл for
для вычисления произведения кодов Юникода всех букв в строке. Например, произведение символов в "Привет" равно 9415087488 L.
Следующая проблема заключается в том, чтобы сделать то же самое, но без цикла for
- подсказывает, что мы должны проверять StringOps
в Scaladoc.
Я проверил раздел RichChar
и StringOps
в Scaladoc, и, возможно, я неправильно читаю или смотрю не в то место, но я не могу найти ничего, что позволило бы мне соответствовать их результатам. Я до сих пор пробовал:
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
?
Спасибо!