Когда использовать "" (пробел) и когда использовать. (точка) при вызове методов в Scala?
Я видел Scala, используя как взаимозаменяемые, но я не знаю, когда использовать тот или иной.
Есть ли соглашение?
Например, они эквивалентны
"hello" toString
и
"hello".toString()
И они могут быть даже смешаны
"hello".toString() length
Какое соглашение?
Ответы
Ответ 1
Чтобы расширить комментарий от Yardena, существует Scala неофициальное руководство по стилю. В нем есть некоторые предложения о том, когда использовать точечную нотацию и когда нужно отбросить точку и скобки и, как правило, дать краткое обоснование рекомендации, с которой вы можете или не согласны, но, по крайней мере, это отправная точка.
Например, name toList
может вести себя по-разному в зависимости от того, что на следующей строке.
Лично я напишу hello.toString.length
с предположением, что все вызовы свободны от побочных эффектов (поэтому я отбрасываю скобки), а затем я должен сохранить точку для ее компиляции.
Ответ 2
Соглашение о пространстве обычно используется, когда метод функционирует подобно оператору (+
, *
и т.д.); соглашение о точках используется, когда оно больше похоже на вызов метода.
(Я знаю, что объяснение немного смутно, но на самом деле не существует жесткого правила для использования.)