加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

作业总是快速复制

发布时间:2020-12-14 04:45:08 所属栏目:百科 来源:网络整理
导读:var list1 = [1,2,3,4,5]var list2 = list1list2.removeLast()println(list1)println(list2) 这是一个简单的代码: 将list1分配给list2 从list2中删除对象 该对象已从list2中删除但仍然存在于list1中 似乎赋值类似于复制而不是指定指针. 我想知道是否有任何
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属性通过引用传递它

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读