Скопированные списки
Я наткнулся на следующий фрагмент при просмотре репозитория фреймворка Flutter:
for (final ValueChanged<RawKeyEvent> listener in List<ValueChanged<RawKeyEvent>>.from(_listeners)) {
if (_listeners.contains(listener)) {
listener(event);
}
}
Насколько мне известно, List.from
должен создать копию с теми же элементами, что и исходный список, поэтому они должны иметь те же элементы, я полагаю?
Для контекста объявлена переменная _listeners
и инициализируется следующим образом:
final List<ValueChanged<RawKeyEvent>> _listeners = <ValueChanged<RawKeyEvent>>[];
Вопрос перефразирован
В принципе, существует ли когда-либо способ, которым if
-условие не будет истинным ?
Тип приведен в List.from
Автор не использовал List.of
, поэтому, возможно, List.from
отбрасывает некоторые элементы, когда типы элементов не соответствуют match?
Но тогда переменная _listeners
уже применяет тот же самый тип, поэтому в любом случае нельзя добавить элемент с несовпадающими типами, верно?