Комментарии 6
Спасибо. Это перевод, к сожалению, автор прекратил публиковать серию.
По поводу же lambda
, вот выжимка из официального Language Tour:
Most functions are named, such as main() or printElement(). You can also create a nameless function called an anonymous function, or sometimes a lambda or closure. You might assign an anonymous function to a variable so that, for example, you can add or remove it from a collection.
С этим термином изначально в программировании путаница. Кондовые математики конечно порвут рубаху за чистоту терминов, но в реальности lambda function
, anonymous function
, как-то стали означать одно и то же.
Линтер ругается, если ты не закрыл стримконтроллер, но не выкидывает никаких варнингов, если сделал listen и не отменил подписку.
По мне так хорошим стилем будет всегда делать стриму cancel
. В реальной жизни может оказаться, что поток, к примеру, управляет какими-то IO ресурсами, которые не вредно бы вовремя освободить. Делая завершение потока неизменным правилом, можно приобрести хорошую привычку.
Вот тут и тут можно почитать размышления на эту тему.
Вот как раз по первой ссылке в моем ответе рассуждения и про отмену подписки тоже. Вкратце — все должно случаться само собою, но в ряде случаев в зависимости от архитектуры приложения может случаться ситуация подвешивания незакрытых ресурсов (типа файлов, других IO-потоков).
Поэтому я лично для себя всегда стараюсь закрывать, если это как-то связано с ресурсами. В простяцких случаях — нет, если не ругается линтер (все линтер-предупреждения я устраняю для верности).
Основы Dart Streams