【发布时间】:2023-03-29 09:03:01
【问题描述】:
在这个下标代码中:
extension Array where Element: Foo {
subscript(key: String) -> Any? {
get {
return self.first(where: { $0.key == key })
}
set {
self.append(Element(key: key, value: newValue))
}
}
}
class Foo {
var key: String
var value: Any?
// Why "required"?
required init(key: String, value: Any?) {
self.key = key
self.value = value
}
}
为什么required必须在Foo.init前面?
如果我删除它,我会收到此错误:
Constructing an object of class type 'Array<Element>.Element' (aka 'Element') with a metatype value must use a 'required' initializer
【问题讨论】:
标签: arrays swift generics extension-methods