2014-10-08 44 views
0
二維陣列

我已經定義的二維陣列爲:Initilizing在夫特

var monthNames:[[String]] 

我想將其初始化如下:

列數:3,和每列的行: undefined

所以我可以在以後啓動行。

回答

0

我推測未定義你的意思是空 - 所以它是一個3個元素的數組,其中每個元素是一個(空)數組。您可以初始化如下:

var monthNames:[[String]] = [ [], [], [] ] 

或:

var monthNames = [[String]](count: 3, repeatedValue: []) 

附註:如果您想以後初始化數組,記住,你不能做到這一點:

var array = monthNames[0] 
array.append("another test") 

因爲數組是值類型,所以當分配給一個變量時,原始數組的副本就完成了。您所做的任何更改都是該變量的本地變量,因此不會反映在原始數組中。

1

根據您的問題,您正在創建一個三列排列,每列將有更多行(記錄)的數量,所以你可以做如下:

var twoDimesions: [[String]] = [[], [], []] 

var array1: [String]=[] 
array1.append("1 name1") 
array1.append("1 name2") 
twoDimesions[0] = array1 

var array2: [String]=[] 
array2.append("2 name1") 
array2.append("2 name2") 
twoDimesions[1] = array2 

println("twoDimentions: \(twoDimesions)") 
println("array1: \(array1)") 
println("array2: \(array2)") 

,你會得到日誌如下:

twoDimentions: [[1 name1, 1 name2], [2 name1, 2 name2], []] 
array1: [1 name1, 1 name2] 
array2: [2 name1, 2 name2] 

這可能對你有幫助!