【发布时间】:2026-01-23 13:20:08
【问题描述】:
我有以下结构,具有一些属性:
struct Partner {
let id: Int
let nome: String
let icone: String
var isSelected : Bool
}
所以我初始化了一个简单的数组并在里面放了一些数据:
var parceiros : [Partner] = [
Partner(id: 1, nome: "Personal Profile", icone: "btPersonal",isSelected : true),
Partner(id: 2, nome: "Professional Profile", icone: "btProfessional", isSelected: false)
]
但是当我想用高阶函数Map更改“isSelected”属性时,在swift 4中,数组根本不更新。这很奇怪,因为 var "_parceiro" 在返回循环中具有正确的值。但函数执行后数组又恢复到原来的值。
private func select(partner: Partner){
let _ = parceiros.map { (parceiro) -> Partner in
var _parceiro = parceiro
_parceiro.isSelected = parceiro.id == partner.id ? true : false
return _parceiro
}
}
【问题讨论】:
-
小提示:
parceiros.map { (parceiro) -> Partner inResult of call to 'map' is unused@Result of call to 'map' is unused@@Result of call to 'map' is unused@@Result of call to 'map' is unused@Result of call to 'map' is unused@Result of call to 'map' is unused@Result of call to 'map' is unused@@Result of call to 'map' is unused@@Result of call to 'map' is unused@@Result of call to 'map' is unusedResult of call to 'map' is unusedResult of call to 'map' is unused -
这不是要让它沉默的暗示,这是因为响应在其中。
map()返回转换后的结果,不会修改调用它的当前对象,不是变异方法。