Scala中的点有什么规则吗?

Scala中的点有什么规则吗?,scala,Scala,正确的例子: "Hello".foldLeft(1L)((a, b) => a * b) REPL打印错误: "Hello" foldLeft(1L)((a, b) => a * b) 如何解释?有什么规定吗?我认为在Scala中跳过点是很好的,但有些示例不起作用 错误:Long(1L)不接受参数“Hello”foldLeft(1L)((a,b) =>a*b) 您可以将“中缀符号”与Arity-1(单参数)方法结合使用。惯例是将这些用于纯函数方法。对于像foldLeft这样的cu

正确的例子:

"Hello".foldLeft(1L)((a, b) => a * b)
REPL打印错误:

"Hello" foldLeft(1L)((a, b) => a * b)
如何解释?有什么规定吗?我认为在Scala中跳过点是很好的,但有些示例不起作用

错误:Long(1L)不接受参数“Hello”foldLeft(1L)((a,b) =>a*b)

您可以将“中缀符号”与Arity-1(单参数)方法结合使用。惯例是将这些用于纯函数方法。对于像foldLeft这样的curried函数(多参数列表),您只能对第一个参数列表使用中缀符号(这会让人困惑,您可能不想这样做)

相关的:

文件:

使用curried函数:


foldLeft
是一个curried函数,curried函数与中缀(无点)符号一起使用是不直观的。您需要将中缀调用括在括号中,如下所示:

scala> ("Hello" foldLeft 1L)((a, b) => a * b)
res0: Long = 9415087488
在这种情况下,我建议不要使用这种用法


对于一些一般规则,您可以查看。

您需要说明哪些错误。
错误:Long(1L)不接受参数“Hello”foldLeft(1L)((a,b)=>a*b)