2013-03-24 48 views
0

我正在用Dart開發我的第一個應用程序,它之前已經使用JavaScript創建。 在我的JavaScript語句我已經聲明瞭一個名單,我賦值前三的位置,如下所示:如何在Dart中創建一個沒有預定義長度併爲其職位指定值的列表?

serpF var = new List(); 
serpF [0] = 10; 
serpF [1] = 10; 
serpF [2] = 10; 

如何我可以做同樣的飛鏢?我已閱讀「http://blog.sethladd.com/2011/12/lists-and-arrays-in-dart.html」中Seth Ladd的列表和數組的文檔,我已經嘗試了所有內容,但這是不可能的。

回答

2

javaScript代碼在Dart中不起作用,因爲它是訪問過列表末尾的錯誤。 Dart就像許多其他語言一樣,因爲這是一種捕捉邏輯錯誤的方式。

你可以做的是元素添加到列表:

var serpF = new List(); // This list has length == 0. 
serpF.add(10); 
serpF.add(10); 
serpF.add(10); 

您可以使用方法級聯縮短代碼:

var serfP = []; 
serpF..add(10)..add(10)..add(10); 

如果你知道這個長度,你可能也嘗試其他列表構造函數之一:

var serfP = new List.filled(3, 10); 
var serfP = new List.generate(3, (i) => 10); 
2

我除了什麼史蒂芬建議你也可以這樣做:

var serpF = [10, 10, 10]; 

var serpF = new List(); 
serpF.length = 3; 
serpF[0] = 10; 
serpF[1] = 10; 
serpF[2] = 10; 
1

您還可以使用List.generate()構造:

var list = new List.generate(3, (_) => 10, growable: true); 
print(list); // Prints [10, 10, 10]. 

的第一個參數指定的元素個數在列表中,第二個參數需要一個回調來給每個元素一個值,第三個參數確保列表不是固定寬度的。

相關問題