dart - 正好两种类型的 Dart 列表
问题描述
在 Dart 中是否有可能像在 TypeScript 中一样拥有完全两种类型的列表?例如,这样的东西会编译:
List<int|String> foo = [
1,2,3,4,'baz'
];
虽然这不会:
List<int|String> foo = [
1,2,false,4,'baz',[],3.0
];
解决方案
不。
Dart 类型系统不包含通用联合类型。它不能在类型系统中表达“必须是int
或”String
两个可用的例外是:
- 某事或
Null
(可为空的类型,如int?
)。 - 某事或
Future
同一事物的某物(FutureOr
)。
这两种联合类型是类型系统已知的。对于所有其他组合,您所能做的就是选择一种类型,它是这两种类型的超类型。在这种情况下,最接近的常见超类型是Object
. 类型系统不会阻止您将布尔值或列表放入其中。
推荐阅读
- php - 如何使用 phpmailer 向收件人发送具有唯一 ID 的取消订阅链接
- mysql - 如何设置这些系统变量以允许谷歌云 mysql 中的表情符号?
- swift - 当我想在 CoreData 中保存某些内容时,Lottie Animation 停止工作
- html - 从粘性元素后面窥视的引导图标
- java - 使用 Android Studio 编辑 Firebase 数据库中的特定值
- python - 如何将数组编码为base64将其保存到文件然后读取并解码
- excel - 如果单元格包含字符串“---”,则删除另一个单元格
- time - 程序如何估计完成一个过程需要多长时间?
- debian - 我无法在我的 Debian 上安装 Robotframework Ride
- php - 多个 MySQL 查询(第一个根据用户获取 id)第二个获取数据库中具有 id 的另一个项目的信息