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相同