我正在尝试向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]