0
我需要改變未知深度的嵌套字典。Swift - 替換嵌套結構中的值
我意識到,在迅速結構是值類型的時候,其實我需要一個引用類型(「NSMutable」)
但我注意到,如果我訪問使用點嵌套結構(。)語法我能夠直接更新值,而不需要重新分配給原始「父母」。
例如在嵌套數組的情況:
var l1 = ["a0","b0"]
var l2 = ["a1","b1"]
var list = [l1,l2]
print(list)
>>[["a0", "b0"], ["a1", "b1"]]
// I can mutate the nested structs by using dot(.) syntax
// mutate the zero indexed nested array:
list[0].insert("x0", atIndex: 0)
print(list)
>> [["x0", "a0", "b0"], ["a1", "b1"]]
// try to mutate after assignment - Not able to
var l1Ref = list[0]
print(l1Ref)
>> ["x0", "a0", "b0"]
l1Ref.removeFirst()
print(l1Ref)
>> ["a0", "b0"]
print(list)
// still the same as was before
>> [["x0", "a0", "b0"], ["a1", "b1"]]
我怎麼能發生變異的嵌套結構迭代,而無需使用點語法?