2

至少根据 IntelliJ Idea,Scala 不建议使用后缀形式。我想我什至读过它。虽然建议使用中缀。我想知道,这里的表格是什么:

val out = new OutputStreamWriter(connection.getOutputStream)
out write text  // infix
out flush ()    // postfix or infix?

我本来可以写out flush()的,它会是后缀形式,对吗?

但是,我也可以这样做out flush ()(注意空格),它似乎是中缀形式 where outis an object, flushis a method and ()- is empty parameter list of type Unit- 就像out write text, 但不是text我们有Unitor ( )。

这是后缀还是中缀形式?

4

1 回答 1

2

就风格指导而言,后缀out flush()也不out flush ()是 - 因为括号。 out flush将被视为后缀。不同之处在于 scala 解析器对分号推断和后缀运算符的行为很奇怪,如此处所讨论。通过在刷新后添加括号,您可以消除您的语句将以您不期望的方式解析的可能性。我会用out flush(). 方法名后直接加括号是有副作用的方法的标准

于 2013-11-14T11:18:19.883 回答