dart - Dart 2.2 之后如何设置文字
问题描述
直到 2.2 才支持设置文字,如何在 Dart 2.2 之后设置文字。请随意发表评论。谢谢你。
class item_t {
String name;
int weight;
int value;
}
main() {
const List<item_t> items = [
{'map', 9, 1}, // reports errors
];
}
更新 1
我可以将列表定义为一系列定义语句。然而,它似乎是无效的。
class item_t {
String name;
int weight;
int value;
}
main() {
// final item_t items = new item_t(100);
List<item_t> items = new List(2);
items[0].name = 'map';
items[0].weight = 9;
items[0].value = 1;
}
在 C 语言中,我可以有效地定义一个结构,但我不知道如何在 dart 中做到这一点。
typedef struct {
char *name;
int weight;
int value;
} item_t;
item_t items[] = {
{"map", 9, 150},
{"compass", 13, 35},
{"water", 153, 200},
};
更新 2
谢谢jamesdlin的建议,我可以简化列表初始化并通过索引访问元素。但是,它仍然不能像 C 语言那样有效。
var mySet = [
{"map", 9, 150},
{"compass", 13, 35},
{"water", 153, 200},
{"sandwich", 50, 160},
{"glucose", 15, 60},
{"tin", 68, 45},
{"banana", 27, 60},
{"apple", 39, 40},
{"cheese", 23, 30},
{"beer", 52, 10},
{"suntan cream", 11, 70},
{"camera", 32, 30},
{"T-shirt", 24, 15},
{"trousers", 48, 10},
{"umbrella", 73, 40},
{"waterproof trousers", 42, 70},
{"waterproof overclothes", 43, 75},
{"note-case", 22, 80},
{"sunglasses", 7, 20},
{"towel", 18, 12},
{"socks", 4, 50},
{"book", 30, 10}
];
print(mySet[0].elementAt(1));
解决方案
您使用{
and}
来指定Set
(和Map
)文字:
var mySet = {1, 2, 3};
请注意,为避免与Map
文字产生歧义,您必须在创建空集时显式指定类型。例如:
var emptySet = <int>{};
推荐阅读
- vue.js - Expected array got function. Passing function into component vuejs
- html - 为什么视频不能在移动设备上自动播放?
- c++ - SDL 帧速率上限实施
- javascript - 将 Fluture Future 转换为民间故事结果
- javascript - 配置 Enzyme 3.x 适配器
- python - Flask SQLAlchemy 强制连接
- linux-kernel - 如何解决内核配置无效的问题
- selenium - 使用 Appium 或 Perfecto 使用 amCharts 元素自动化 iOS 应用程序
- android - Android Wear 打包分发
- netflix-eureka - 如何在 eureka 服务器上为每个 eureka 客户端注册多个服务?