私は Scala が初めてで、少し当惑しています。「せっかちな人のための Scala」と演習を行っている間に、結果が文字列「Hello」のすべての数値の積になるものを試しました。私が最初に考えたのは、次のことを行うことでした。
"Hello".foldLeft(1)(_.toLong * _.toLong)
ただし、式 (_.toLong * _.toLong) の結果、演算子とオペランドの間で型が一致しません。Int が予期されていましたが、Long を受け取りました。
ただし、次のように動作します。
"Hello".map(_.toLong).reduce(_ * _)
foldLeft を使用するときに、演算子 '*' が Long ではなく Int を期待するのはなぜですか? リストの内容によるものでしょうか。文字は暗黙的に Int に変換されますか?
ありがとう!