【问题标题】:What does tuple assignment `var (x:p,y:q)=("","")` in Swift?Swift中的元组赋值`var(x:p,y:q)=(“”,“”)是什么?
【发布时间】:2021-01-31 09:34:33
【问题描述】:

在 Swift 中,我们分配这样的元组 var (x,y):(String,String)=("","") 或省略类型 decl var (x,y)=("","");但是var (x:p,y:q)=("","") 是什么意思?它编译的是 Swift 5.3.3 并将 p 和 q 视为变量,这太奇怪了。

谁能解释一下?

【问题讨论】:

  • 对你得到的答案有任何反馈吗?

标签: swift tuples


【解决方案1】:

如果你看到以下内容,你能想到什么吗?

var (x: p, y: q) = (x: "", y: "")

你知道,在 Swift 中,元组可能有标签。 在当前的 Swift 实现中,Swift 编译器将 xy 视为您显示的示例中元组的标签。

【讨论】:

    【解决方案2】:
    var (x:p,y:q)=("","")
    

    您声明了 2 个变量 p 和 q,它们是元组的一部分,它们的类型由初始值 "" 隐式给出。这个元组也有标签 x 和 y。

    这也可以用显式类型声明

    var (x: p, y: q): (x: String, y: String)
    

    现在您可以将变量用作元组或单独使用

    (p, q) = ("foo", "bar")
    q = "bar"
    (x: p, y: q) = ("foo", "bar")
    (x: p, y: q) = (x: "foo", y: "bar")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-14
      • 2021-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多