美文网首页
Swift 存储方式

Swift 存储方式

作者: 寒雨晚风 | 来源:发表于2024-03-13 08:43 被阅读0次

    1、值类型和引用类型是Swift中两种数据存储方式,简单来说值类型就是直接存储的值,引用类型就是存储的指针
    2、在 Swift 中,struct,enum,以及 tuple 都是值类型。而平时使用的 Int、Double、Float、String、Array、Dictionary、Set 其实都是用结构体实现的,也是值类型。结构体不像类一样需要调用malloc等方法去开辟内存空间结构体的内存中直接存储值值类型的赋值是一个值传递的过程,相当于深拷贝
    3、在 Swift 中,class 和closure是引用类型。引用类型的赋值是浅拷贝(Shallow Copy),引用语义(Reference Semantics)即新对象和源对象的变量名不同,但其引用(指向的内存空间)是一样的,因此当使用新对象操作其内部数据时,源对象的内部数据也会受到影响。类需要调用alloc等方法去开辟内存空间类的实例对象中存储的是指针地址,这个地址中存储的才是值类的实例对象的赋值是一个指针拷贝的过程,相当于浅拷贝
    4、结构体和类的区别:类中的属性需要使用?、!或者赋初始值才不会导致编译报错结构体中的属性不需要赋初始值,也不用使用?、!结构体的初始化需要同时初始化结果图内部的属性类的初始化可以不用初始化类中的属性结构体中的optional属性,或者赋值的属性可以不在结构体初始化的时候初始化
    5、一般情况下,值类型的属性不能再他的实例方法中修改 ,但是可以使用mutating 修改实例属性

    相关文章

      网友评论

          本文标题:Swift 存储方式

          本文链接:https://www.haomeiwen.com/subject/cfzvzdtx.html