如何在Swift中为Dictionary自定义扩展



我正在尝试向Dictionary添加一个函数,这个函数名为add,它有两个输入值(键和值(。我试图使函数是泛型的,这意味着我希望键和值可以采用任何类型。我把它归结为这个向下的非工作代码。下一步该怎么做才能使此函数正常工作?

extension Dictionary {
func add<Key, Value>(key: Key, value: Value) {
self[Key] = Value
}
}

首先,您试图为字典分配一个类型而不是实例。

如果没有更多上下文,表达式类型不明确(:


其次,您需要声明您的方法为mutating。

无法通过下标赋值:下标仅为get(。


第三,您正在创建两个与Dictionary泛型Key和Value类型无关的新泛型类型。

无法将"Key"类型的值(实例方法"add(Key:value:("的泛型参数(转换为所需的参数类型"Key"(泛型结构"Dictionary"的泛型形参(。


extension Dictionary {
mutating func add(key: Key, value: Value) {
self[key] = value
}
}

var dict: [String: Int] = [:]
dict.add(key: "One", value: 1)
dict  // ["One": 1]

最新更新