美文网首页
iOS Swift 值类型与引用类型使用区别

iOS Swift 值类型与引用类型使用区别

作者: rome753 | 来源:发表于2022-05-31 15:51 被阅读0次

    值类型在传递和赋值时将进行复制,而引用类型只会使用引用对象。
    Swift中定义的很多类型都是值类型,如struct、enum以及所有的内建类型(Int、Bool、String、Array、Dictionary)都是值类型。class为引用类型。

    以最常用的数组为例

    值传递

    A,B两个类各有一个Array,把B的arr赋值为A的arr,然后给B的arr添加一个元素。

    运行看到A的arr没有改变,两个arr的hashValue不同,是两个对象。赋值时是值传递。

    截屏2022-05-31 15.30.13.png

    引用传递

    在上面基础上,将arr的类型改成NSMutableArray,添加方法改成add,其他的不变。

    运行看到A的arr也改变了,两个arr的hashValue相同,是同一个对象。赋值时是引用传递。

    截屏2022-05-31 15.32.03.png

    相关文章

      网友评论

          本文标题:iOS Swift 值类型与引用类型使用区别

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