val out = new OutputStreamWriter(connection.getOutputStream)
out write text // infix
out flush () // postfix or infix?
我本来可以写out flush()
而且它会是后缀形式,对吗?
但是,我也可以完成out flush ()
(注意空格)并且它似乎是中缀形式,其中out
是一个对象,flush
是一种方法, ()
- 是Unit
类型的空参数列表 - 就像out write text
一样,但text
代替Unit
,我们有{{1}}或()。
这是后缀还是中缀形式?
答案 0 :(得分:2)
就样式指南而言,由于括号,out flush()
和out flush ()
都不是后缀。 out flush
将被视为后缀。区别在于scala解析器与分号推理和后缀运算符的行为奇怪,如here所述。通过在刷新后添加括号,可以消除以您不期望的方式解析语句的可能性。我会用out flush()
。在方法名称后直接添加括号是具有副作用的方法的标准