swift从入门到精通06-结构体和类

247 阅读1分钟

1.结构体初始化

所有结构体都有一个编译器自动生成的初始化器。

例子:

struct Person {
    var age:Int
    var sex:Bool
    var money:Int
}
var jiajia = Person(age: 20, sex: true, money: 10000)

2.结构体的内存机制

例子:

struct Person {
    var age:Int
    var sex:Bool
    var money:Int
}

var jiajia = Person(age: 20, sex: true, money: 10000)
print(MemoryLayout<Person>.size)//17
print(MemoryLayout<Person>.stride)//24
print(MemoryLayout<Person>.alignment)//8

3.类的初始化

类和结构体相似,但是编译器没有为类自动生成初始化器。

class Person {
    var age:Int = 10
    var sex:Bool = true
    var money:Int = 10000
}

var jiaija = Person()

或者:

class Person {
    var age:Int
    var sex:Bool
    var money:Int
    
    init(age:Int,sex:Bool,money:Int) {
        self.age = age
        self.sex = sex
        self.money = money
    }
}

var jiaija = Person(age: 20, sex: true, money: 10000)

4.结构体和类的本质区别

结构体是值类型(枚举也是值类型),类是引用类型(指针类型)。

值类型是直接将内容拷贝一份,就是深拷贝。

引用类型是直接将内容地址拷贝一份,相当于浅拷贝。


上一篇文章:swift从入门到精通05-可选项

下一篇文章:swift从入门到精通07-闭包