gpt4 book ai didi

Swift didSet 获取数组的索引

转载 作者:可可西里 更新时间:2023-11-01 00:35:57 25 4
gpt4 key购买 nike

假设我有一个数组:

var intArray: [Int] = [1,2,3,4,5] {
didSet{
//print index of value that was modified
}
}

如果我做 intArray[2] = 10,我可以在 didSet 中写什么来打印修改值的索引(在本例中为 2) ?

最佳答案

zip() 函数可能对此很有用:

class A
{
var array = [1,2,3,4,5]
{
didSet
{
let changedIndexes = zip(array, oldValue).map{$0 != $1}.enumerated().filter{$1}.map{$0.0}
print("Changed indexes: \(changedIndexes)")
}
}
}

let a = A()
a.array = [1,2,7,7,5]

// prints: Changed indexes: [2, 3]

它也适用于单个元素更改,但数组会发生多次更改,因此获取更改索引的数组更安全。

关于Swift didSet 获取数组的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41456951/

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