Что означает `() => Unit`? - PullRequest
3 голосов
/ 15 марта 2012

Как говорится в вопросе.

Это было найдено в List[() => Unit], который использовался для хранения функций обратного вызова.

Я понимаю, List[type], и что Unit является типом возврата функции, которая ничего не возвращает.

Ответы [ 2 ]

8 голосов
/ 15 марта 2012

(T1,...,Tn) => T - это тип функций, которые принимают параметры типов от T1 до Tn и возвращаемого типа T.Таким образом, () => Unit - это тип функций, которые не принимают параметров и имеют тип возврата Unit.Следовательно, List[() => Unit] - это тип списков, содержащих такие функции.

4 голосов
/ 15 марта 2012

Во-первых, у вас есть список функций. Каждая функция не принимает параметров (это то, что означают круглые скобки open-close ()) и возвращает Unit, что является значением без результата, аналогично void.

В чисто функциональном мире функция типа ()=>Unit бесполезна, потому что она ничего не берет и ничего не возвращает. Тем не менее, Scala не является чисто функциональным языком; у него есть побочные эффекты. Чтобы быть полезными, функции в списке, безусловно, будут иметь побочные эффекты. Поскольку они являются функциями обратного вызова, у них также есть представление о том, когда они запускаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...