Здесь есть некоторые дискуссии, но у меня есть некоторые конкретные вопросы, на которые я не мог найти ответ. Итак, по вызову по имени, я имею в виду тип =>T
, а по функции 0-arity я имею в виду () => T
Я понимаю (я думаю) концептуальную разницу, но, вероятно, мне что-то не хватает, поскольку у меня еще много вопросов:
- Почему у нас есть понятие
=>T
вообще, если мы всегда можем использовать() => T
? - Есть ли какие-либо синтаксические/функциональные ограничения для каждого? На данный момент я обнаружил, что
=>
cannnot нельзя использовать как поле класса. Это единственное ограничение? - Является ли сгенерированный код одинаковым для обоих?
- Должен ли я всегда предпочитать
=>T
? И почему? - Правильно ли вызывать
=>T
тип? Он выглядит так, как будто у него нет никакого представления типа в scala.