【发布时间】:2019-09-03 03:31:14
【问题描述】:
我有一个 List 变量来存储一些数据的最后保存值。当此变量与当前数据不同时,它会更新它以匹配。但是,当我检查它们是否相同时,它们总是相同!当数据变量更新时,我检查了两者,最后保存的变量也发生了变化。当我分配它们的值时,Dart 是否会以某种方式链接变量?
我在检查之前尝试打印这两个变量,以确保它们没有改变,但在数据变量改变的那一刻它们仍然是相同的。
print("checking if data updated");
print(lastSavedData);
print(datas);
if (lastSavedData == datas) {
print("no new data");
} else {
print("new data is there");
saveData();
lastSavedData = datas;
}
I/flutter ( 8751): checking if data updated
I/flutter ( 8751): []
I/flutter ( 8751): []
I/flutter ( 8751): no new data
I/flutter ( 8751): checking if data updated
I/flutter ( 8751): [{name: Fu, notes: , goodness: 0}]
I/flutter ( 8751): [{name: Fu, notes: , goodness: 0}]
I/flutter ( 8751): no new data
【问题讨论】:
-
您必须提供更多代码 sn-p 尤其是显示这些变量的设置位置。
-
我添加了唯一改变 lastSavedData 变量的地方。
-
您可能在某处更新了
datas变量,当您将其分配给它时,它持有对该变量的引用。 -
向我们展示您在哪里使用数据变量
-
datas 变量是应该更新的......所以我当然是。除非有新数据,否则它是不应更改的 lastSavedData 变量。