gpt4 book ai didi

swift - 修改作为参数传递给 Swift 中的函数的数组

转载 作者:搜寻专家 更新时间:2023-11-01 06:32:11 24 4
gpt4 key购买 nike

抱歉新手问题;我还在学习。我遇到了一些奇怪的行为,找不到任何关于此的文档。我想知道您是否可以帮助指出我在这里做错了什么。

错误:

Cannot use mutating member on immutable value: 'arr' is a 'let' constant

class mySingleton {
static let sharedInstance = mySingleton()
private init() {}

var men = ["bob", "doug"]
var women = ["alice", "lisa"]

func removeFirst() {
self.arr.removeFirst()
}

func removeFirstByGender(gender: String) {
if gender == "men" {
self.modify(arr: self.men) // <-- error occurs here.
} else {
self.modify(arr: self.women) // <-- error occurs here.
}
}

func modify(arr: [String]) {
arr.removeFirst()
}
}

最佳答案

您需要更改modify 的定义以接受inout 参数。默认情况下,函数参数是不可变的,但通过使用 inout 关键字,您可以使它们可变。您还需要通过引用传递参数。

func modify( arr: inout [String]) {
arr.removeFirst()
}
var stringArr = ["a","b"]
modify(arr: &stringArr) //stringArr = ["b"] after the function call

关于swift - 修改作为参数传递给 Swift 中的函数的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45640752/

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