Iterable 的 whereType 方法行为
Iterable's whereType method behaviour
我无法理解 iterable
的 whereType
是如何工作的。
我有以下示例,我不知道为什么会这样。有这个代码:
List<dynamic> list = ["SomeString", 12];
print(list);
print(list.whereType<String>());
print(list.where((item) => item is String));
输出为:
[SomeString, 12]
(SomeString, 12)
(SomeString)
我希望第二次打印时只有 String。有人可以向我解释为什么我错了吗?
我认为这是一个不一致的地方,因为 whereType
是为 Dart2 设计的,但 Dart2 并不完整。
有一个看起来类似的未决问题
dart --reify-generic-functions my_script.dart
应该可以正常工作
我无法理解 iterable
的 whereType
是如何工作的。
我有以下示例,我不知道为什么会这样。有这个代码:
List<dynamic> list = ["SomeString", 12];
print(list);
print(list.whereType<String>());
print(list.where((item) => item is String));
输出为:
[SomeString, 12]
(SomeString, 12)
(SomeString)
我希望第二次打印时只有 String。有人可以向我解释为什么我错了吗?
我认为这是一个不一致的地方,因为 whereType
是为 Dart2 设计的,但 Dart2 并不完整。
有一个看起来类似的未决问题
dart --reify-generic-functions my_script.dart
应该可以正常工作