swift语法for let(hello,world):( String,String)=(" hello"," world")

时间:2016-05-17 03:11:07

标签: swift

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

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

是简写:

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

如果是速记,这个简写叫什么?这种类型的styntax有没有Swift文档?

1 个答案:

答案 0 :(得分:2)

正如@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")

这完全取决于你 - 这是个人偏好的问题。