Swift 3:扩展中的重载函数
我喜欢重载一个函数:Swift 3:扩展中的重载函数,swift,parameters,overloading,Swift,Parameters,Overloading,我喜欢重载一个函数: extension Array where Element: Equatable { mutating func remove(object: Element) { if let index = self.index(of: object) { self.remove(at: index) } } } 但我有一个错误,那就是电话 primary.remove(dupp) 不匹配任何重载。如果我使用自
extension Array where Element: Equatable {
mutating func remove(object: Element) {
if let index = self.index(of: object) {
self.remove(at: index)
}
}
}
但我有一个错误,那就是电话
primary.remove(dupp)
不匹配任何重载。如果我使用自己的名称,则调用是匹配的,编译器希望在第一个参数之前添加“object:”。所以这个电话似乎没问题,但怎么了?如果我添加“object:”手动,它工作正常。您使用的是哪个版本的swift?因为它没有在swift 2.2中编译。我不理解你的问题
primary.remove(对象:dump)
是调用方法的正确方法。如果不需要参数标签,请将其定义为mutating func remove(uu.object:Element)
。编译器建议,不直接添加“object:”时不会出现重载。但你的暗示很好,我会加上“变异”。谢谢。您使用的是哪个版本的swift?因为它没有在swift 2.2中编译。我不理解你的问题primary.remove(对象:dump)
是调用方法的正确方法。如果不需要参数标签,请将其定义为mutating func remove(uu.object:Element)
。编译器建议,不直接添加“object:”时不会出现重载。但你的暗示很好,我会加上“变异”。非常感谢。