[Dictionary <string,any =“”>]和[String:Any]之间有什么区别

时间:2017-12-16 23:34:30

标签: swift dictionary

在swift中,我看到[Dictionary<String, Any>][String: Any]。两者似乎做同样的事情。有什么区别吗?一个比另一个更好还是更好?

3 个答案:

答案 0 :(得分:2)

实际上是一个包含另一个元素的数组。

[String:Any]Dictionary<String:Any>的简写,而[Dictionary<String:Any>]Array<Dictionary<String:Any>>的简写,可以写成[[String:Any]]

如果要对数组/字典使用简写表示法,请记住,数组可以写为[Element],而字典可以写为[Key:Value]。此处ElementKeyValue代表具体类型,例如StringIntAny等。请注意:在词典表示法中,你需要两种类型,一种用于键,另一种用于声明字典时的值。

答案 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]语法是作为语法糖构建的。