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