Цикл forEach не выполняется, как если бы список был пуст, несмотря на то, что отладка показывает 2 элемента в списке

Я получил этот фрагмент кода, выполняющийся в onPressed(). В списке 2 элемента, они отображаются при отладке.

print("Got ${myList.length} elements");
myList.forEach((element) => () {
    print('Hello there !!!!');
});

Я вижу в консоли "Получил 2 элемента". Однако отладка не зацикливается, и в консоли больше ничего не отображается.

Я относительно новичок во Flutter/Dar, и я застрял, поэтому буду признателен за любую помощь. Спасибо.

0
0
240
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Измените это:

myList.forEach((element) => () {
print('Hello there !!!!');
});

К этому:

myList.forEach((element) {
print('Hello there !!!!');
});

Подробнее здесь: https://api.dartlang.org/stable/2.2.0/dart-core/Iterable/forEach.html

Это сработало. Спасибо. Не могли бы вы объяснить разницу? Я еще не полностью изучил все детали синтаксиса Dart.

ccc 09.04.2019 01:34

Я обновил свой ответ, проверьте правильную реализацию

diegoveloper 09.04.2019 01:35
=> означает return. В первом коде вы просто возвращаете функцию, а во втором фактически ее запускаете.
Michael Yuwono 09.04.2019 03:58

@MichaelYuwono, спасибо. Вот этого я не понял.

ccc 16.04.2019 03:17

Другие вопросы по теме