【问题标题】:Why Array / Dict / Optional are not compound types in Swift?为什么 Array / Dict / Optional 不是 Swift 中的复合类型?
【发布时间】:2017-10-15 08:16:31
【问题描述】:

来自documentation

除了用户定义的命名类型外,Swift 标准库还定义了许多常用的命名类型,包括表示数组、字典和可选值的命名类型。

[...]

有两种复合类型:函数类型和元组类型。

嗯...很明显,字典、数组和可选项是命名类型而不是复合类型。

我不明白为什么它们不是复合类型,而元组和函数类型是。因为在我看来所有这些类型都是其他类型的宿主

所以有两个解决方案:

  • 关于复合类型的某些内容我不明白
  • 关于元组和函数类型有些我不理解

【问题讨论】:

    标签: swift types compound-type


    【解决方案1】:

    文档明确指出复合类型是没有名称的类型。元组类型和函数类型没有名称,即在函数签名或变量中指定这些类型时,您不会说 let a : Tuplelet f : function,而是必须使用它们自己的特定符号来指定类型 - @987654323 @或let f: (Int, Int) -> Int

    复合类型与“其他类型的宿主”没有任何关系。

    【讨论】:

    • "复合类型可能包含命名类型和其他复合类型。"此外,您对名称的区别是模糊的——函数和元组确实具有充当类型别名的名称。我认为这不足以回答这个问题。
    • @sdasdadas 每个类型都有 1) 它的定义和 2) 可选的名称。元组没有名称,您必须使用它的定义和相同的函数。类型别名不同于类型名称的概念。
    • 对,这很好区分。但是 OP 在问 为什么 就是这样。
    • 有道理,谢谢。因此,我认为复合一词具有误导性。
    猜你喜欢
    • 2016-05-23
    • 2012-12-28
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    相关资源
    最近更新 更多