gpt4 book ai didi

swift - 协议(protocol)方法和默认值

转载 作者:搜寻专家 更新时间:2023-11-01 05:44:42 26 4
gpt4 key购买 nike

我有一个协议(protocol)方法,在将它实现到类时,我希望这个方法有一些默认值。但是因为协议(protocol)本身不能有默认值,所以我不知道如何使用默认值。

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

是否可以使用默认值而不必强制转换类或手动重载方法?


编辑:
当我向协议(protocol) Bar

添加扩展时它起作用
extension Bar {
func addText(text: String, alignment: Int = 0, newLine: Bool = true) { }
}

这是唯一的方法吗?

Playground 截图:

enter image description here

最佳答案

这就是我在 Playground 上看到的。不确定是什么导致了您的问题。

enter image description here

关于swift - 协议(protocol)方法和默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36710767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com