我有一个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
答案 0 :(得分:0)
它存储的是变量的链接,而不是数据的链接。只需以适合您代码的方式从变量获取数据,然后将其分配给变量而不是引用即可。