![](/img/trans.png)
[英]What is the difference between [[String:String]]! and [[String:String]]() in Swift
[英]What is the difference between [Dictionary<String, String>()] and [String: String]()
我可以知道这两个字典声明之间的区别吗?
var places = [String: String]()
var places = [Dictionary<String, String>()]
当我尝试以这种方式附加声明时,为什么只有第二种声明方法有效:
places.append(["name":"Taj Mahal", "lat":"27.175277", "lon":"78.042128"])
谢谢你的帮助。
这是一个简单的字典:
var places = [String: String]()
显然,尝试在字典上调用append
无效。
但是,您的第二个结果是一个带有一个对象的数组,一个空字典:
var places = [Dictionary<String, String>()]
因此,您尝试append
字典(具有三个键, name
, lat
和long
)的尝试将适用于此格式。 但是我不认为这是您想要的,因为该数组现在有两个项目,原始的空字典和您刚刚添加的新字典。
我怀疑您是否真的想要一个空的字典数组,即:
var places = [Dictionary<String, String>]()
或者,更简单地说:
var places = [[String: String]]()
更好的是,我可以定义一个Place
类型:
struct Place {
let name: String
let latitude: Double
let longitude: Double
}
然后将places
定义为该类型的数组:
var places = [Place]()
然后插入一个像这样的地方:
places.append(Place(name: "Taj Mahal", latitude: 27.175277, longitude: 78.042128))
如果需要,您显然也可以定义latitude
和longitude
为字符串的Place
。 任何适合您的应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.