我有一个协议方法,当它实现到类时,我希望这个方法有一些默认值。但由于协议本身不能有默认值,我不知道如何使用默认值。
class Foo: Bar {
func addText(text: String, alignment: Int = 0, newLine: Bool = true) {
print(text, alignment, newLine)
}
}
protocol Bar {
func addText(text: String, alignment: Int, newLine: Bool)
}
let a: Bar = Foo()
let b: Foo = Foo()
a.addText("someText") // This results in an error (Missing argument...)
b.addText("someText") // This works
是否可以使用默认值而无需强制转换类或手动重载方法?
编辑:
当我向协议Bar
extension Bar {
func addText(text: String, alignment: Int = 0, newLine: Bool = true) { }
}
这是唯一的方法吗?
游乐场的截图: