dart - Iterable 的 whereType 方法行为

标签 dart flutter

我无法理解 iterablewhereType 是如何工作的。

我有以下示例,我不知道为什么会这样。有这个代码:

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

应该让它工作

关于dart - Iterable 的 whereType 方法行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49144852/

相关文章:

flutter - 'Router' 是从 'package:fluro/src/router.dart' 和 'package:flutter/src/widgets/router.dart' 导入的

android-studio - Dart/Flutter防止格式化程序将方法调用压缩到一行

android - 未找到 MaterialLocalizations - MyApp 小部件需要由 Localizations 小部件祖先提供的 MaterialLocalizations

Flutter Hive 商店颜色

flutter - 行的子级不得包含任何空值 flutter 错误

class - dart 编程中整数类中的基数是什么?

flutter - Flutter widgets 的绝对位置

Dart:实例变量覆盖

flutter - Flutter 如何处理方向变化

ruby - 在 mac 上安装、运行 FaSTLane for Flutter 时出错