【问题标题】:Swift Syntax for let (hello, world):(String,String) = ("hello","world")let (hello, world):(String,String) = ("hello","world") 的 Swift 语法
【发布时间】:2016-05-17 15:14:16
【问题描述】:

在 Swift 中,下面是什么样的语法?

let (hello, world):(String,String) = ("hello","world")
print(hello) //prints "hello"
print(world) //prints "world"

是否是以下的简写:

let hello = "hello"
let world = "world"

如果是速记,这个速记叫什么?这种类型的语法是否有任何 Swift 文档?

【问题讨论】:

  • 嗯。那我怎么能单独打印出每个变量,就好像它们是单独声明的一样: print(hello) //prints "hello" print(world) //prints "world"
  • 来自文档:您可以将元组的内容分解为单独的常量或变量,然后照常访问:

标签: swift


【解决方案1】:

正如@vadian 所述,您所做的是创建一个元组,然后立即将decomposing its contents 转换为单独的常量。

如果你把表达式分开,你可能会更好地看到发生了什么:

// a tuple – note that you don't have to specify (String, String), just let Swift infer it
let helloWorld = ("hello", "world")

print(helloWorld.0) // "hello"
print(helloWorld.1) // "world"

// a tuple decomposition – hello is assigned helloWorld.0, world is assigned helloWorld.1
let (hello, world) = helloWorld

print(hello) // "hello"
print(world) // "world"

但是,因为您在创建元组时立即分解元组的内容,所以这有点违背了从一开始就拥有一个元组的目的。我总是更喜欢写:

let hello = "hello"
let world = "world"

如果你更喜欢写作:

let (hello, world) = ("hello", "world")

这完全取决于您 - 这是个人喜好问题。

【讨论】:

    猜你喜欢
    • 2014-07-24
    • 2012-01-04
    • 2014-10-15
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2011-09-12
    • 2012-09-07
    相关资源
    最近更新 更多