[英]Accessing Arrays in Dictionaries (swift)
我似乎找不到如何輸入語法的解決方案。 我想訪問並能夠修改嵌套在較大字典中的數組內的各個整數。
這是一個例子:
var exampleDictionary = [ 1: [2,3] , 2: [4,5] , 3: [7,8] ]
print (exampleDictionary[2]!) // prints [4,5]
如何訪問鍵2 (上面的4)的第一個值 ?
如何僅更改鍵2的第一個值 ?
我正在嘗試類似的事情,但它不起作用:
exampleDictionary[2[0]] = (exampleDictionary[2[0]] - 3) // want to change [4,5] to [1,5]
print (exampleDictionary[2[0]]) // should print "1"
exampleDictionary[2 : [0]] = (exampleDictionary[2 :[0]] - 3)
print (exampleDictionary[2 : [0]])
您應該下標數組而不是下標:
exampleDictionary[2]![0] = (exampleDictionary[2]?[0] ?? 0) - 3
更安全的方法是使用可選綁定,如下所示:
if var array = exampleDictionary[2] {
array[0] -= 3
exampleDictionary[2] = array
}
您必須始終將Swift集合類型視為值類型,並且必須就地修改對象,例如
if let firstValueOfKey2 = exampleDictionary[2]?.first {
print(firstValueOfKey2)
exampleDictionary[2]!.first = firstValueOfKey2 - 3
print(exampleDictionary[2]!.first!)
}
首先,您有[Int: [Int]]
類型的字典,這意味着每個鍵的值都為Int
的數組。
1.如果你的exampleDictionary
無關類型的,指定的類型exampleDictionary
到[Int: [Int]]
這樣你就不需要投它的下一個步驟。
var exampleDictionary: [Int: [Int]] = [ 1: [2,3] , 2: [4,5] , 3: [7,8] ]
2.訪問所需的密鑰。
var key2: [Int] = exampleDictionary[2]!
var firstValueOfKey2: Int = key2.first!
3.更改key2的值:
key2 = [1,5]
4.由於Swift, Collections
是值類型,這意味着指針指向內存中的新塊,這意味着您不能直接從修飾符更改根對象的值。 那么您應該將最后一個結果分配給根對象。
exampleDictionary[2] = key2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.