gpt4 book ai didi

swift - 有没有办法判断传入的变量是引用类型还是值类型?

转载 作者:搜寻专家 更新时间:2023-10-31 08:24:01 24 4
gpt4 key购买 nike

Swift中有没有办法通过代码判断传入的变量是引用类型还是值类型?

比如元组是值类型还是引用类型?

最佳答案

一切都是值类型,除了:

  • 一个类的实例

  • 一个函数

  • 一个数组(以一种奇怪的方式工作;它通过引用传递,但如果它是可变的并且项目的数量发生变化,则可以与其他化身解除绑定(bind))

简单的代码测试方法就是分配给两个不同的 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 的这种异常行为被取消了,只有类实例和函数通过引用传递。现在其他一切都按值传递。

关于swift - 有没有办法判断传入的变量是引用类型还是值类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24439471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com