Как Scala применяет () работу волшебства метода?

ref модификатор означает что:

  1. значение уже установлено и
  2. , метод может считать и изменить его.

out модификатор означает что:

  1. Значение не установлено и не может быть считано методом до , это установлено.
  2. метод должен устанавливать его перед возвратом.
79
задан Peter Mortensen 12 October 2013 в 03:08
поделиться

3 ответа

Я не думаю, что происходит что-то более глубокое, чем то, что вы первоначально сказали: это просто синтаксический сахар, посредством которого компилятор преобразует f (a) в f .apply (a) как особый синтаксический случай.

Это может показаться особым правилом, но только некоторые из них (например, с update ) допускают DSL -подобные конструкции и библиотеки.

66
ответ дан 24 November 2019 в 10:19
поделиться

На самом деле все обстоит наоборот: объект или класс с методом apply - это нормальный случай, а функция - это способ неявно конструировать объект с тем же именем с помощью метода apply. Фактически каждая определяемая вами функция является подобъектом свойства Function n (n - количество аргументов).

См. Раздел 6.6: Приложения функций в Scala Спецификация языка для получения дополнительной информации по теме.

20
ответ дан 24 November 2019 в 10:19
поделиться

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

Да. И это правило принадлежит к этому меньшему набору.

8
ответ дан 24 November 2019 в 10:19
поделиться
Другие вопросы по тегам:

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