Выражение for (e <- a if e > 2) yield e
является выражением в Scala.Он оценивает массив.Дарт не имеет этого в качестве прямого выражения, но вы можете сделать функции, которые возвращают итерируемость почти таким же образом, а затем немедленно вызвать их, чтобы создать выражение:
var a = [1, 2, 3, 4, 5]
var res = () sync* { for (var v in a) if (v > 2) yield v; } ();
Здесь я представляю функцию () sync* { for (var v in a) if (v > 2) yield v; }
и называет это немедленно.Эта функция возвращает Iterable
.Элементами этой итерируемой являются значения yield
', редактируемые телом, в данном случае 3, 4 и 5.