您的位置:首页 > 移动开发 > Swift

swift中value type和reference type

2015-09-27 23:46 253 查看
swift中有enum,struct,class其中enum和struct是值传递,class是引用传递。

struct S {
var data:Int = 0
}
var a = S()
var b = a   //将a的值传递给b
b.data = 1  //b修改值并不影响a
print("\(a.data)")  //此处输出0

class C{
var data:Int = 0
}
var c = C()
var d = c   //将c的引用传递给d
d.data = 1  //修改d将会改变c
print("\(c.data)")  //此处输出1


在swift中值传递时将值copy给新的变量或常量时并不会马上copy,而是在新的变量修改其中的属性后才会进行copy,这样做可以减少大量值传递所带来的性能问题。

swift中的基础数据结构使用struct来实现,如Array,String,dictionary,Int,Double。在作文函数的参数时应注意传递方式为值传递,并且作为函数参数时默认设置为let。如函数

func f(arr:[Int]){
var a = arr
}


arr类型为let arr:[Int]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift