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

swift – 有没有办法确定传入的变量是引用类型还是值类型?

发布时间:2020-12-14 04:39:16 所属栏目:百科 来源:网络整理
导读:在 Swift中,有没有办法通过代码确定传入的变量是引用类型还是值类型? 例如,元组是值类型还是引用类型? 解决方法 一切都是价值类型,除了: 一个类的实例 一个功能 一个数组(以奇怪的方式工作;它通过引用传递,但如果它是可变的并且项目数已更改,则可以从其他
在 Swift中,有没有办法通过代码确定传入的变量是引用类型还是值类型?

例如,元组是值类型还是引用类型?

解决方法

一切都是价值类型,除了:

>一个类的实例
>一个功能
>一个数组(以奇怪的方式工作;它通过引用传递,但如果它是可变的并且项目数已更改,则可以从其他化身中解除绑定)

测试的简单代码方法只是分配给两个不同的var名称,更改一个,并查看它们是否仍然相等.例如:

var tuple1 = (1,2)
    var tuple2 = tuple1
    tuple1.1 = 3
    println(tuple1)
    println(tuple2)

它们是不同的,证明元组是通过值传递的.但:

var arr1 = [1,2]
    var arr2 = arr1
    arr1[1] = 3
    println(arr1)
    println(arr2)

它们是相同的,证明数组是通过引用传递的.

编辑:

但是在Swift的beta 3中,这个不寻常的Array行为被撤销了,只有类实例和函数通过引用传递.现在,其他所有东西都按价值传递.

(编辑:李大同)

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

    推荐文章
      热点阅读