2017-03-16 67 views
1

我知道在Swift中结构和枚举都是值类型,类和函数都是引用类型。但是元组类型呢?我搜索了苹果的Swift编程语言3.0,但找不到答案。在Swift中是一个值类型或引用类型?

+1

请访问,我认为它会帮助你 - https://whatilearnedtoday.io/swift-tuples/ –

+0

嗨,托尼。正如我以前可能提到过的那样,没有必要为您的所有问题添加“请帮助”样板。由于很明显你需要帮助,因此可以将其解释为乞讨的一种形式。志愿者比较喜欢在这里匆匆忙忙。 – halfer

回答

4

一个简单的测试表明,元组是值类型:

var tuple1 = (1, 2) 
var tuple2 = tuple1 
tuple1.0 = 3 
print("t1 = \(tuple1), t2 = \(tuple2)") 

输出:

T1 =(3,2),T2 =(1,2)

如果元组是参考类型,则tuple2将被更改。

+0

而我刚刚从[duplicate](http://stackoverflow.com/questions/24439471/is-there-away)看到了[matt的答案](http://stackoverflow.com/a/24439640/1226963) - 确定 - 如果变量传入参考类型或值 - t)由kennytm提出。在看到他的代码之前,我写了几乎重复的答案。怪异。 – rmaddy

+0

谢谢你的回答。我也看到了马特的回答,这要归功于肯尼特。我想伟大的思想家都会这么想:P – Thor

+1

或者,让'x =(1,2); x.1 = 3'产生一个不可变的值错误,也认为它是一个值类型。 –