Scala 省略具有一个参数的方法的括号

Scala 省略具有一个参数的方法的括号,scala,Scala,我想知道,为什么这不起作用: object test { def method1(a: Int) = println(a) // println a -- doesn't work either method1 123 } method1只接受参数,也就是说,可以省略括号,不是吗?这与后缀操作冲突。让我们看一下您的示例: println a 解析器会将其解释为 println.a 如果你会写,那会很混乱 println 123 (这是可以区分的,因为123不是一个有效

我想知道,为什么这不起作用:

object test {
  def method1(a: Int) = println(a)  // println a -- doesn't work either

  method1 123
}

method1
只接受参数,也就是说,可以省略括号,不是吗?

这与后缀操作冲突。让我们看一下您的示例:

 println a 
解析器会将其解释为

 println.a
如果你会写,那会很混乱

 println 123

(这是可以区分的,因为
123
不是一个有效的方法名),但是现在如果您用一个保存该值的变量替换
123
,您将得到类似于
在println上找不到成员a

这已经在这里得到了回答:
startWith
为什么工作
val map2=Map(1->“1”,2->“2”)过滤器{kv=>kv.\u 1用“A”开始。}
?@MariusKavansky这是中缀。与:
kv.\u 1.用(“A”)开始。
为什么这与
kv.\u 1.用“A”开始。
?因为println A与println.A相同