struct class enum

https://www.jianshu.com/p/a10f554ac63b

http://www.sohu.com/a/50940662_252502

http://blog.csdn.net/see_you_in_the_past/article/details/44653249

https://www.jianshu.com/p/8011b638b3a9

在swift中,类型引用和值引用的区别在于,对于类型引用(class reference),将变量a赋值给变量b,即b = a,这样的赋值语句仅仅将b的指针与a的指针一样,指向同一块内存区域,此时改变b的值,a也会跟着改变;而对于值引用(value reference),赋值语句b = a处理的过程是开辟一个新的内存b,将a变量的内容拷贝后存放到内存b,这时a和b完全没有关系的两个变量,对b的改变不会影响到a,反之亦然。

class (class reference)


class SomeClass {
    var name: String?
    init(name: String) {
        self.name = name
    }
}

var aClass = SomeClass(name: "dante")
var bClass = aClass //此时bClass和aClass指向同一个内存区域
// 改变bClass的name值
bClass.name = "flion"
print(aClass.name!) // "flion"
print(bClass.name!) // "flion"

struct(value reference)


struct SomeStruct {
    var name: String?
    init(name: String) {
        self.name = name
    }
}

var aStruct = SomeStruct(name: "dante")
var bStruct = aStruct
bStruct.name = "flion"
print(aStruct.name) // "dante"
print(bStruct.name) // "flion"

你可能感兴趣的:(struct class enum)