gpt4 book ai didi

arrays - Swift:通过引用传递数组?

转载 作者:IT王子 更新时间:2023-10-29 04:56:01 24 4
gpt4 key购买 nike

我想通过引用将我的 Swift Array account.chats 传递给 chatsViewController.chats(这样当我向 account.chatschatsViewController.chats 仍然指向 account.chats)。也就是说,当 account.chats 的长度发生变化时,我不希望 Swift 将两个数组分开。

最佳答案

对于函数参数运算符,我们使用:

let(它是默认操作符,所以我们可以省略 let)使参数常量(这意味着我们甚至不能修改本地副本);< br/>
var 使其成为变量(我们可以在本地修改它,但不会影响传递给函数的外部变量);和

inout 使其成为输入输出参数。 In-out 实际上意味着通过引用传递变量,而不是通过值。而且它不仅需要通过引用接受值,还需要通过引用传递它,所以用 & - foo(&myVar) 传递它而不仅仅是 foo(myVar)

那么这样做:

var arr = [1, 2, 3]

func addItem(_ localArr: inout [Int]) {
localArr.append(4)
}

addItem(&arr)
print(arr) // it will print [1, 2, 3, 4]

准确地说,它不仅仅是一个引用,而是外部变量的一个真正的别名,所以你可以对任何变量类型做这样的技巧,例如整数(你可以给它赋新值),尽管它可能这不是一个好的做法,像这样修改原始数据类型可能会造成混淆。

关于arrays - Swift:通过引用传递数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24250938/

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