Рассмотрим этот пример кода:
void main() {
List<int> array = <int>[];
for (int i = 0; i < 5; i++) {
array.add(i);
}
Iterable<int> newList = array.where( (value) => value % 2 == 0 );
printFunction(array);
printFunction(newList);
}
void printFunction(List<int> list) {
print(list);
}
Этот код успешно компилируется, но, конечно, выдает исключение во время выполнения, потому что он не может выполнить код для printFunction(newList)
, если только не вызвать toList()
перед передачей newList
Почему компилятор не выдал исключение в этом случае ???