Flutter 更新dart中的变量会同时更改两个数据
如何在不更改list1的值的情况下更改list2的值。更改列表2数据将更新列表1数据Flutter 更新dart中的变量会同时更改两个数据,flutter,dart,Flutter,Dart,如何在不更改list1的值的情况下更改list2的值。更改列表2数据将更新列表1数据 var list = [1,2,3]; var list1; var list2; list1 = list; list2 = list; list2[0] = 100; print(list1); //output [100, 2, 3] // need this to be [1,2,3] print(list2); //output [100, 2, 3] 使用List.of构造函数将Lis
var list = [1,2,3];
var list1;
var list2;
list1 = list;
list2 = list;
list2[0] = 100;
print(list1); //output [100, 2, 3] // need this to be [1,2,3]
print(list2); //output [100, 2, 3]
使用
List.of
构造函数将List
的所有元素分配给list2
添加了一个示例:
var列表=[1,2,3];
var列表1;
var列表2;
列表1=列表;
//使用列表
列表2=列表的列表(列表1);
列表2[0]=100;
印刷品(
清单1)//输出[1,2,3]
打印(列表2)//输出[100,2,3]
使用构造函数的列表将列表的所有元素分配给列表2
添加了一个示例:
var列表=[1,2,3];
var列表1;
var列表2;
列表1=列表;
//使用列表
列表2=列表的列表(列表1);
列表2[0]=100;
印刷品(
清单1)//输出[1,2,3]
打印(列表2)//输出[100,2,3]
对象通过引用传递。当你做list1=list代码>和list2=列表代码>,您将list
的引用分配给list1
和list2
。因此,在该引用处更改对象将更改您在所有这些不同变量处看到的数据
如果希望单独修改这些对象,则需要创建一个新的列表
实例。这可以使用List.of
或带有扩展运算符的List
文本来完成
list2=List.of(List);
或
list2=[…list];
如果只对list2
执行此操作,则list1
和list
都将保持不变,即使只更改一个
var列表=[1,2,3];
var列表1;
var列表2;
列表1=列表;
列表2=[…列表];
列表2[0]=100;
列表1[0]=200//列表1在此处更改
//但“列表”将被更改,如下所示
打印(列表)//输出[200,2,3]
打印(列表1)//输出[200,2,3]
打印(列表2)//输出[100,2,3]
如果希望这些List
s中的每一个都是完全独立的,则需要使用List.of
或List
文本,并对list1
和list2
对象进行引用传递。当你做list1=list代码>和list2=列表代码>,您将list
的引用分配给list1
和list2
。因此,在该引用处更改对象将更改您在所有这些不同变量处看到的数据
如果希望单独修改这些对象,则需要创建一个新的列表
实例。这可以使用List.of
或带有扩展运算符的List
文本来完成
list2=List.of(List);
或
list2=[…list];
如果只对list2
执行此操作,则list1
和list
都将保持不变,即使只更改一个
var列表=[1,2,3];
var列表1;
var列表2;
列表1=列表;
列表2=[…列表];
列表2[0]=100;
列表1[0]=200//列表1在此处更改
//但“列表”将被更改,如下所示
打印(列表)//输出[200,2,3]
打印(列表1)//输出[200,2,3]
打印(列表2)//输出[100,2,3]
如果您希望这些List
s中的每一个都是完全独立的,那么您需要使用List.of
或List
文本,并对list1
和list2
进行扩展。如果您要复制列表,您应该始终选择List.of
(或[…List]
或List.toList()
)超过List.from
因为.from
会添加不必要的运行时检查。还要注意的是,与List.of
不同,List.from
(没有显式类型)创建了一个List
@jamesdlin-Ah没有想到,谢谢。编辑了答案。如果您要复制列表,您应该始终更喜欢list.of
(或[…list]
或list.toList()
)而不是列表。from
因为.from
会添加不必要的运行时检查。还请注意,与list.of
不同,list.from
(没有明确的类型)创建一个列表
@jamesdlin-Ah没有想到,谢谢。编辑了答案。请参阅我的评论:首选List.of
而不是List.from
。感谢您的见解@jamesdlin。编辑了答案。请参阅我的评论:首选List.of
而不是List.from
。感谢您的见解@jamesdlin。编辑了答案。你试过我的答案吗?你试过我的答案吗?