这个问题在这里已有答案:
我很快就看到了[Dictionary<String, Any>]
和[String: Any]
。两者似乎做同样的事情。有什么区别吗?一个比另一个更好还是更好?
一个实际上是一个包含另一个元素的数组。
[String:Any]
是Dictionary<String:Any>
的简写,而[Dictionary<String:Any>]
是Array<Dictionary<String:Any>>
的简写,可以写成[[String:Any]]
。
如果要对数组/字典使用简写表示法,请记住,数组可以写为[Element]
,而字典可以写为[Key:Value]
。 Element
,Key
和Value
在这里代表具体类型,如String
,Int
,Any
等。请注意字典表示法中的:
以及需要两种类型的事实,一种用于键,一种用于声明字典时的值。
他们是一样的。 [X:Y]
语法称为字典文字; Dictionary<X, Y>
语法是显式形式。 (如果你的意思是[Dictionary<X, Y>]
是一系列字典,这是不同的。)
至于一个是否优于另一个,它主要是一种风格选择。我主要看到人们在实践中使用文字语法而不是显式语法。
大概你真的是指Dictionary<String, Any>
和[String: Any]
。
它们只是同一个符号的符号:
Dictionary<String,Any>
使用泛型类型表示法。[String:Any]
就是这样 - 一种速记(“语法糖”),内置于语言中更加愉快/直观。但[Dictionary<String,Any>]
又是另一回事;它与[[String:Any]]
或Array<Dictionary<String,Any>>
相同。同样,这些是等价的,因为Array是通用的,但[Type]
语法是作为语法糖构建的。