私の知る限り、Scala での中置演算子の使用は、メソッドの呼び出しと同等である必要があります。そう:
scala> "a" + 3.toString
res0: java.lang.String = a3
以下と同じです:
scala> "a".+(3.toString)
res1: java.lang.String = a3
プレースホルダーがある場合、これが発生しない場合がありました。私はもっと複雑なことをしていましたが、次のように蒸留できます。
scala> def x(f:(Int)=>String) = f(3)
x: (f: Int => String)String
scala> x("a" + _.toString)
res3: String = a3
ここまでは順調ですね。しかし...
scala> x("a".+(_.toString))
<console>:9: error: missing parameter type for expanded function ((x$1) => x$1.toString)
x("a".+(_.toString))
ここの違いは何ですか?私は何が欠けていますか?
ジョルディ