在Dart中为多维列表编制索引时出现意外结果
在索引多维列表时,我得到了一个奇怪的结果。以以下为例:在Dart中为多维列表编制索引时出现意外结果,dart,Dart,在索引多维列表时,我得到了一个奇怪的结果。以以下为例: void main(){ var multiList=new List.filled(4,new List.filled(4,“x”)); 打印(多列表); //[x,x,x,x],[x,x,x,x],[x,x,x],[x,x,x]] 多列表[2][1]=“A”; 打印(多列表); //[x,A,x,x],[x,A,x,x],[x,A,x,x],[x,A,x,x]] //预期结果: //[x,x,x,x],[x,x,x,x],[x,A,x,
void main(){
var multiList=new List.filled(4,new List.filled(4,“x”));
打印(多列表);
//[x,x,x,x],[x,x,x,x],[x,x,x],[x,x,x]]
多列表[2][1]=“A”;
打印(多列表);
//[x,A,x,x],[x,A,x,x],[x,A,x,x],[x,A,x,x]]
//预期结果:
//[x,x,x,x],[x,x,x,x],[x,A,x,x],[x,x,x]]
}
当我尝试用一个值替换索引[2][1]时,该值将被放置在所有子列表中
你知道为什么会这样吗?我怎样才能得到预期的结果呢
谢谢你的帮助 我认为您需要使用
生成
而不是填充
var multiList=new List.generate(4,(i)=>new List.filled(4,“x”);
否则,只创建一个新列表。填充(4,“x”)并插入4次。如果您在内部列表中添加了非基本类型,那么也可以使用generate。感谢您的快速响应!这解决了我的问题,解释也有道理。谢谢