gpt4 book ai didi

swift - 在字典扩展中使用未声明的类型 'KeyType' (Swift)

转载 作者:搜寻专家 更新时间:2023-10-30 22:10:53 27 4
gpt4 key购买 nike

随着 beta 5 的变化,我在下面的扩展中遇到了与 KeyType 和 ValueType 相关的错误。

extension Dictionary {

func filter(predicate: (key: KeyType, value: ValueType) -> Bool) -> Dictionary {
var filteredDictionary = Dictionary()

for (key, value) in self {
if predicate(key: key, value: value) {
filteredDictionary.updateValue(value, forKey: key)
}
}

return filteredDictionary
}
}

我可能遗漏了一些东西,但我似乎无法在发行说明中找到任何相关的更改,而且我知道这在 beta 3 中有效。

最佳答案

Dictionary 声明已更改为仅使用 KeyValue 作为其关联类型,而不是 KeyType值类型:

// Swift beta 3:
struct Dictionary<KeyType : Hashable, ValueType> : Collection, DictionaryLiteralConvertible { ... }

// Swift beta 5:
struct Dictionary<Key : Hashable, Value> : CollectionType, DictionaryLiteralConvertible { ... }

所以你的扩展只需要:

extension Dictionary {

func filter(predicate: (key: Key, value: Value) -> Bool) -> Dictionary {
var filteredDictionary = Dictionary()

for (key, value) in self {
if predicate(key: key, value: value) {
filteredDictionary.updateValue(value, forKey: key)
}
}

return filteredDictionary
}
}

关于swift - 在字典扩展中使用未声明的类型 'KeyType' (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25151577/

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