微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

作业总是快速复制

var list1 = [1,2,3,4,5]
var list2 = list1
list2.removeLast()
println(list1)
println(list2)

这是一个简单的代码

>将list1分配给list2
>从list2中删除对象
>该对象已从list2中删除但仍然存在于list1中

似乎赋值类似于复制而不是指定指针.

我想知道是否有任何官方文件解释它以及如何让它在这里输入代码

解决方法

数组是结构,结构是值类型,因此它们是按值而不是通过引用复制的.
字典也是如此,如果您分配给另一个变量,则会创建一个副本.

类是引用类型,而赋值复制对实例的引用.

您可以在Structures and Enumerations Are Value Types中阅读更多相关信息

旁注:传递给函数的结构是不可变的 – 你不能在函数修改它,除非你使用inout属性通过引用传递它

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐