[英]IOS Swift 2 - How to construct multidimensional array
如何獲得以下輸出:
rsPool[0][p1] = "123"
rsPool[0][p2] = "234"
rsPool[1][p1] = "abc"
rsPool[1][p2] = "bcd"
我從JSON輸出反序列化,其中包含以下數據
first dimention > type (1 to 7)
second dimention > p1...P10
value > xxxx
我嘗試創建:
var rspool : [Int: String] : []
但我不知道如何添加/添加到數組。
您可以使用方括號多次定義多維數組:
var rspool: [[String]] = [["123", "234"], ["abc", "bcd"]]
print(rspool[0][0])
print(rspool[0][1])
print(rspool[1][0])
print(rspool[1][1])
//123
//234
//abc
//bcd
這是String
數組的數組。
動態數組
通常,您可以通過使用諸如append
, insert
和removeAtIndex
類的Array
方法來使用動態更改的數組大小。 讓我們從空數組組成給定數組:
var rspool = [[String]]()
rspool.append([String]()) //adding first line; now we can access it by rspool[0]
rspool[0].append("abc")
rspool[0].append("bcd")
//we started from second line for to show example with insert:
rspool.insert([String](), atIndex: 0) //inserting new line as first line
rspool[0].append("123")
rspool[0].append("234")
print(rspool)
//[["123", "234"], ["abc", "bcd"]]
您始終需要小心使用索引訪問此數組,因為您可能會收到“索引超出范圍”異常。 您可以通過索引直接讀取和覆蓋數組中的現有值:
let veryFirst = raspol[0][0]
raspol[0][0] = "456"
靜態數組
如果您希望僅通過索引(即矩陣樣式)來操作數組,則需要設置常量尺寸並首先初始化所有數組。 Optional
類型(例如元素類型)和重復值將很有用:
let m = 3
let n = 5
var rspool = [[String?]](count: m, repeatedValue: [String?](count: n, repeatedValue: nil))
現在您可以按索引讀取write元素:
rspool[0][0] = "123"
rspool[0][1] = "234"
rspool[1][0] = "abc"
rspool[1][1] = "bcd"
print(rspool)
//[[Optional("123"), Optional("234"), nil, nil, nil], [Optional("abc"), Optional("bcd"), nil, nil, nil], [nil, nil, nil, nil, nil]]
矩陣樣式的數組編號示例:
rspool[2][4] = "END"
for i in 0..<m {
for j in 0..<n {
print("\(rspool[i][j] ?? ".")\t", terminator: "")
}
print()
}
//123 234 . . .
//abc bcd . . .
//. . . . END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.