Когда использовать “” (пространство) и когда использовать. (точка) при вызове методов в Scala?

Я видел, что Scala использует обоих попеременно, но я не знаю, когда использовать один или другой.

Существует ли конвенция?

Например, они эквивалентны

"hello" toString 

и

"hello".toString()

И они могут даже быть смешаны

"hello".toString() length 

Какова конвенция?

28
задан OscarRyz 3 August 2010 в 18:58
поделиться

2 ответа

В развитие комментария Yardena, существует неофициальное руководство по стилю Scala. В нем есть несколько предложений о том, когда использовать точечную нотацию, а когда отказаться от точки и скобки, и обычно приводится краткое обоснование рекомендации, с которым вы можете согласиться или не согласиться, но, по крайней мере, это отправная точка.

Например, name toList может вести себя по-разному в зависимости от того, что находится в следующей строке.

Лично я написал бы hello.toString.length с предположением, что все вызовы не имеют побочных эффектов (поэтому я опускаю скобки), а затем я должен сохранить точку для компиляции.

7
ответ дан 28 November 2019 в 03:54
поделиться

Условное обозначение пробелов обычно используется, когда метод работает как оператор ( + , * и т. Д.); точечное соглашение используется, когда оно больше похоже на вызов метода.

(Я знаю, что объяснение довольно расплывчатое, но на самом деле нет жесткого и быстрого правила для использования.)

10
ответ дан 28 November 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: