gpt4 book ai didi

ios - 无法 swift 推断通用参数

转载 作者:搜寻专家 更新时间:2023-10-31 08:11:54 25 4
gpt4 key购买 nike

我已经为不同的项目写了一个数组扩展

extension Array {
func distinct<T: Equatable>() -> [T]{
var unique = [T]()
for i in self{
if let item = i as? T {
if !unique.contains(item){
unique.append(item)
}
}
}
return unique
}
}

然后尝试像下面这样调用这个函数

let words = ["pen", "Book", "pencile", "paper", "Pin", "Colour Pencile", "Marker"]
words.distinct()

但它给出错误“无法快速推断通用参数'T'”

最佳答案

您可以通过告诉编译器您的期望来消除此错误:

let a: [String] = words.distinct()

问题是编译器不知道泛型 T 是什么。更好的解决方案是告诉编译器您为所有元素可相等的数组定义不同的函数:

extension Array where Element : Equatable {
func distinct() -> [Element]{
var unique = [Element]()
for i in self{
if let item = i as? Element {
if !unique.contains(item){
unique.append(item)
}
}
}
return unique
}
}

关于ios - 无法 swift 推断通用参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35289983/

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