何时使用“”(空格)以及何时使用。 (点)在Scala中调用方法时?

时间:2010-08-03 18:58:24

标签: scala syntax language-design

我看过Scala可互换使用,但我不知道何时使用其中一种。

有会议吗?

例如,这些是等价的

"hello" toString 

"hello".toString()

他们甚至可以混合

"hello".toString() length 

惯例是什么?

2 个答案:

答案 0 :(得分:10)

当方法的功能类似于运算符(+*等)时,通常使用空间约定;当它的功能更像是一个方法调用时,会使用点约定。

(我知道这种解释有点模糊,但对于使用情况并没有真正的硬性规则。)

答案 1 :(得分:7)

为了扩展Yardena的评论,有一个Scala unofficial style guide。它有关于何时使用点符号以及何时删除点和括号的一些建议,并且通常提供推荐的简要理由,您可能会或可能不会同意,但至少这是一个起点。

例如,name toList的行为可能会有所不同,具体取决于下一行的内容。

就个人而言,我会写hello.toString.length假设所有调用都是无副作用的(因此我删除了括号)然后我必须保留点以便编译。