dart - 如何在 Dart 中使用临时列表?
问题描述
我如何使用 Dart 获得这个结果?
[预期结果] [["A","B","C"],["D","E","F"]]
void main() {
var list = new List<List<String>>();
var tempList = new List<String>();
tempList.add("A");
tempList.add("B");
tempList.add("C");
list.insert(0, tempList);
tempList.clear();
tempList.add("D");
tempList.add("E");
tempList.add("F");
list.insert(1, tempList);
print(list);
}
[当前结果] [["D","E","F"],["D","E","F"]]
我怎样才能把它做对?
解决方案
您应该创建一个新列表而不是清除原始列表。Dart 对象是通过引用传递的,因此当您插入tempList
然后list
调用时tempList.clear()
,您将删除已插入的列表list
,向其中添加元素,然后添加它的副本,这会导致您看到的重复。
示例修复:
void main() {
var list = <List<String>>[];
var tempList = <String>[];
tempList.add("A");
tempList.add("B");
tempList.add("C");
list.insert(0, tempList);
// Create a new empty list
tempList = <String>[];
tempList.add("D");
tempList.add("E");
tempList.add("F");
list.insert(1, tempList);
print(list);
}
推荐阅读
- javascript - 消息不会基于 tim 显示
- python - 多线程——来自网络摄像机流的人脸识别
- sql-server - 替换数据库中的阿拉伯字母
- python - 如何在熊猫 python 列中仅将科学值转换为 int
- javascript - 在 Angular 中访问子级
- javascript - 在锚标记的文本更改上使用 JavaScript 显示/隐藏 div
- highcharts - The last label on xaxis disappears partly in Highcharts
- r - 如何在特定地点获得角色?
- angular - 在角材料选项卡中显示所有内容
- android - 使用什么工具来实现 android 的通知记录器?