繁体   English   中英

[Dictionary和有什么不一样 <String, String> ()]和[String:String]()

[英]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字典(具有三个键, namelatlong )的尝试将适用于此格式。 但是我不认为这是您想要的,因为该数组现在有两个项目,原始的空字典和您刚刚添加的新字典。

我怀疑您是否真的想要一个空的字典数组,即:

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))

如果需要,您显然也可以定义latitudelongitude为字符串的Place 任何适合您的应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM