Ответ 1
A Scala метод 0-арности может быть определен с круглыми скобками или без них ()
. Это используется, чтобы сигнализировать пользователю о том, что метод имеет какой-то побочный эффект (например, распечатывать или удалять данные), в отличие от того, который отсутствует, который впоследствии может быть реализован как val
.
Такие безпараметрические методы довольно распространены в Scala. Напротив, методы, определяемые пустым скобками, например def height(): Int, называются пустыми методами. Рекомендуемое соглашение заключается в использовании безпараметрического метода, когда нет параметров, и метод обращается к изменяемому состоянию только путем чтения полей содержащего объекта (в частности, он не изменяет изменяемое состояние).
Это соглашение поддерживает принцип единого доступа [...]
Подводя итог, рекомендуется, чтобы стиль в Scala определял методы, которые не принимают никаких параметров и не имеют побочных эффектов в качестве безпараметрических методов, т.е. оставляют пустые круглые скобки. С другой стороны, вы никогда не должны определять метод, который имеет побочные эффекты без круглых скобок, потому что тогда вызовы этого метода будут выглядеть как выбор поля.