Так я работаю через несколько упражнений в «Scala для нетерпеливых» и один из них:Char или String -> Значение Unicode в Scala?
Написать for
цикл для вычисления произведения кодов Unicode всех букв в строке. Например, произведение символов в «Привет» равно 9415087488 L.
Следующая проблема заключается в том, чтобы сделать то же самое, но без цикла for
- это намеки на то, что мы должны проверить 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
?
Спасибо!
Там еще один способ, если вы делаете это в два этапа. Подсказка: последний из двух методов имеет неявный параметр. –