gpt4 book ai didi

arrays - 快速数组/集合中特定实例的索引

转载 作者:行者123 更新时间:2023-11-30 12:12:03 25 4
gpt4 key购买 nike

我的 Playground 中有以下代码:

let array = [3,3]
let first = array.first!
let last = array.last!

let indices = [array.index(of: first)!, array.index(of: last)!]
print(indices) // This prints [0,0]

我知道“index(of:)”方法只是从数组中获取第一个匹配的实例,这更有效,但我想知道是否有一种方法可以基于以下事实来获取最后一个索引:我已经从“array.last”中获取了值。

此外,如果我有以下内容:

let lotsOfThrees = [3,3,3,3,3,3,3]
let fourthThree = lotsOfThrees[3]
// Write code to return the index of "fourthThree" (possibly based on memory address)

我想知道是否有一种方法可以根据内存地址执行此操作,但老实说不确定。

最佳答案

您可以通过反转数组来获取元素的最后索引,然后获取第一个出现的索引。原始数组中最后一个元素的索引是 (反转数组中第一次出现的索引) - (数组的大小) - 1。将其放入扩展方法中以增加乐趣。

extension Array<T> {   
func lastIndex(of item: T) -> Int? {
if let lastIndex = self.reverse().index(of: item) {
return self.count() - lastIndex - 1
} else {
return nil
}
}
}

关于arrays - 快速数组/集合中特定实例的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45929472/

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