【发布时间】:2016-06-27 09:28:50
【问题描述】:
我可能错过了有关 swift 的重要信息。我有一个地图包含一个键/快速数组对。我改变了数组,地图里面的数组没有改变。有人可以解释发生了什么吗?谢谢!
var map = [String:[String]]()
var list = [String]()
map["list"] = list //output: "["list": []]\n"
print(map)
list.append("test")
print(list) //output: "["test"]\n"
print(map) //output: "["list": []]\n"
【问题讨论】:
-
Swift 数组是按值传递的,即复制过来。您必须将其设置回地图中,或使用某种参考包装器:stackoverflow.com/questions/24250938/…
-
我使用了包装类来获得这个功能。我确实想知道是否有一种方法可以使用指向数组的指针,然后从其他地方的指针创建一个数组。
-
没有办法在 Swift 中为数组使用指针,因为它不能那样工作。
-
“在 Swift 中没有办法为数组使用指针”这并不完全正确。