[Dictionary]有什么区别? ]和[字符串:任何] [重复]

问题描述 投票:-3回答:3

这个问题在这里已有答案:

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

swift dictionary
3个回答
2
投票

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

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

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


1
投票

他们是一样的。 [X:Y]语法称为字典文字; Dictionary<X, Y>语法是显式形式。 (如果你的意思是[Dictionary<X, Y>]是一系列字典,这是不同的。)

至于一个是否优于另一个,它主要是一种风格选择。我主要看到人们在实践中使用文字语法而不是显式语法。


1
投票

大概你真的是指Dictionary<String, Any>[String: Any]

它们只是同一个符号的符号:

  • Dictionary是键类型和值类型的通用参数化,因此Dictionary<String,Any>使用泛型类型表示法。
  • 简写[String:Any]就是这样 - 一种速记(“语法糖”),内置于语言中更加愉快/直观。

[Dictionary<String,Any>]又是另一回事;它与[[String:Any]]Array<Dictionary<String,Any>>相同。同样,这些是等价的,因为Array是通用的,但[Type]语法是作为语法糖构建的。

© www.soinside.com 2019 - 2024. All rights reserved.