对不起,新手问题;我还在学习。我遇到了一些奇怪的行为,找不到任何关于此的文档。我想知道您是否可以帮助指出我在这里做错了什么。
错误:
不能对不可变值使用变异成员:“arr”是“let”常量
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()
}
}
Run Code Online (Sandbox Code Playgroud)
您需要更改 的定义modify以接受inout参数。默认情况下,函数参数是不可变的,但通过使用inout关键字,您可以使它们可变。您还需要通过引用传递参数。
func modify( arr: inout [String]) {
arr.removeFirst()
}
var stringArr = ["a","b"]
modify(arr: &stringArr) //stringArr = ["b"] after the function call
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2649 次 |
| 最近记录: |