dart - 在 Dart 的 Map 对象中创建通用属性
问题描述
我有这张地图:
final x = {
"y": {},
"z": {},
}
我希望 $y 属性在整数类型的属性内保存一个类型为 $e 的对象,即:
x = {
"y": {
1: {/*e*/},
2: {/*e*/},
3: {/*e*/},
}
}
虽然我希望 $z 属性保留 $g 而不是 $e,就像 $y 一样,但我希望它保留 $g 而不是 $e,即:
x = {
"y": {
1: {/*e*/},
2: {/*e*/},
3: {/*e*/},
},
"z": {
1: {/*g*/},
2: {/*g*/},
3: {/*g*/},
}
}
我尝试了以下方法:
final x = {
Map<int, e> "y": {},
Map<int, g> "z": {},
}
这没有用。
我也试过:
x = {
"y": {
1: Map<e>,
},
"z": {
1: Map<g>,
}
}
也没有奏效,
- 请注意,$x 和 $g 是由类创建的对象(实例)。
- 当我说“这不起作用”时,我的意思是,它显示了一个错误。
我怎样才能在 Dart 中做到这一点?
解决方案
我不确定我是否正确理解了您的问题,但我认为您正在寻找类似的内容:
class E {}
class G {}
void main() {
var e = E();
var g = G();
var x = <String, Map>{
"y": <int, E>{
1: e,
2: e,
3: e,
},
"z": <int, G>{
1: g,
2: g,
3: g,
}
};
}
通常,您为变量指定类型,并且可以在实例化泛型时指定类型(<K, V>{}
构造一个Map<K, V>
文字)。请注意,类型检查必须在运行时发生,并且不能在编译时静态执行。
推荐阅读
- react-native - 在javascript中每秒循环的最有效方法
- python-3.x - 如何从 python 脚本安装自制软件?
- python - 将场景渲染为pyrender中的图像后如何获取对象的像素坐标?
- javascript - 多个 axios 请求
- javascript - 如何使用 Javascript 单击按钮来获取带有按钮的文本?
- html - 为什么我的子类不继承父类的字体?
- python - Python:每隔一行添加零行
- react-native - 应用重启后购物车中的商品未显示
- aem - AEM-6.4 sling 的原始值:/libs/foundation/components/redirect 的resourceSuperType
- hash - 通过在 Raku 中对它们的值进行分组来打印散列元素