我在理解iterable's 的whereType工作原理时遇到问题。
我有以下示例,但我不知道它为什么会这样。有这个代码:
List<dynamic> list = ["SomeString", 12];
print(list);
print(list.whereType<String>());
print(list.where((item) => item is String));
Run Code Online (Sandbox Code Playgroud)
输出是:
[SomeString, 12]
(SomeString, 12)
(SomeString)
Run Code Online (Sandbox Code Playgroud)
我希望第二次打印中只有 String 。有人可以向我解释为什么我错了吗?
我认为这是一个不一致的地方,因为whereType它是为 Dart2 设计的,但 Dart2 并不完整。
有一个看起来类似的未决问题
dart --reify-generic-functions my_script.dart
Run Code Online (Sandbox Code Playgroud)
应该让它发挥作用
| 归档时间: |
|
| 查看次数: |
926 次 |
| 最近记录: |