我是 Scala 的新手,有点困惑。在阅读“不耐烦的 Scala”并进行练习时,我尝试了一个结果是字符串“Hello”的所有数值的乘积。我的第一个想法是执行以下操作:
"Hello".foldLeft(1)(_.toLong * _.toLong)
但是,表达式 (_.toLong * _.toLong) 导致运算符和操作数之间的类型不匹配,应为 Int,但它收到的是 Long。
但是,以下工作:
"Hello".map(_.toLong).reduce(_ * _)
为什么在使用 foldLeft 时,运算符 '*' 需要一个 Int 而不是 Long?是因为列表的内容吗?字符是否隐式转换为整数?
谢谢!