【问题标题】:Swift: Declaring empty tuplesSwift:声明空元组
【发布时间】:2016-01-26 06:27:37
【问题描述】:

声明空元组的正确方法是什么?

  • 对于阵列:var myArr : [String] = []
  • 对于元组:var myTuple: (key: String, val: Int) = ()?

有没有正确的方法来实现这一点?

【问题讨论】:

  • 添加值或使其可选
  • 你可以用 "" 和 0 来初始化它
  • @LeoDabus “魔法值”,如 ""0,如果这些值有效,则可能会很危险。
  • @JackLawrence 在这种情况下他可以声明 key: String?, val: Int?

标签: ios swift tuples


【解决方案1】:

没有“未填充”元组值这样的东西。换句话说,您不会创建一个空元组,然后再向其添加值。重要的是要记住,元组不是像 ArrayDictionary 这样的集合。元组是结构化类型。例如,您不能使用 for 循环遍历元组。在您的示例中,myTuple 是一个恰好包含StringInt 的值。

元组就像一个按需的未命名结构,例如以下结构,但如果它可能是未命名的:

struct MyStruct {
    let key: String
    let val: Int
}

如果你想对缺失的元组值建模,你应该让整个元组的类型是可选的。例如:

var myTuple: (key: String, val: Int)? = nil

【讨论】:

  • 请注意,有一个 空元组 - 它是函数的返回类型,不返回任何内容,即Void。见developer.apple.com/reference/swift/void
  • 我不知道; “没有空/未填充的元组值”是模棱两可的。尽管确实不能像向空数组添加元素那样向空元组添加元素,但确实存在空元组。如果明确区分,答案会更好。
  • 好点,我将进行编辑以明确这一点。我试图与问题使用的词汇联系起来,但在这种情况下,这肯定会导致不准确。
猜你喜欢
  • 2014-07-24
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-21
  • 2016-11-05
  • 1970-01-01
相关资源
最近更新 更多