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

问题描述:

我已经看到Scala可以互换使用,但我不知道何时使用其中一种。何时使用“”(空格)以及何时使用。 (点)调用Scala中的方法?

有没有约定?

例如,这些是等价的

"hello" toString 

"hello".toString() 

他们甚至可以混合

"hello".toString() length 

有什么约定?

+3

请查看http://www.codecommit.com/scala-style-guide.pdf – Yardena 2010-08-03 19:06:37

为了扩大从亚丹娜的评论,有一个斯卡拉unofficial style guide。它对何时使用点符号以及何时删除圆点和括号提供了一些建议,并且通常为推荐提供一个简短的基本原理,您可能会也可能不会同意,但至少这是一个起点。

例如name toList根据下一行的内容可能会有不同的表现。

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

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

(我知道,解释是一种模糊的,但真的有没有一个硬性的规则来进行使用。)

+0

我明白你的意思了。我在Coursera的课程中看到的一个很好的例子是使用“工会”方法。我认为使用空格表示法编写'union b'时看起来更具可读性。而这个'union'就是一个操作符。 – jFrenetic 2017-01-16 02:44:30