This question already has an answer here:
Reasons to include function in protocol definition vs. only defining it in the extension?
(1个答案)
两年前关闭。
我是否:
或者
我可以在课堂上遵守这个协议:
无论我使用方法1还是方法2,输出都是:Hi Minion。在我的协议中添加和不添加函数定义有什么区别?
(1个答案)
两年前关闭。
我是否:
protocol SomeProtocol{}
extension SomeProtocol {
func sayHi(toUser user: String) {
print("Hi \(user)")
}
或者
protocol SomeProtocol{
func sayHi(toUser user: String)
}
extension SomeProtocol {
func sayHi(toUser user: String) {
print("Hi \(user)")
}
我可以在课堂上遵守这个协议:
class MyClass: SomeProtocol {
sayHi(toUser: "Minion")
}
无论我使用方法1还是方法2,输出都是:Hi Minion。在我的协议中添加和不添加函数定义有什么区别?
最佳答案
extension
无论如何都是类、协议等的扩展。
在您的例子中,您正在向协议中添加扩展,因此您的扩展方法将成为协议的一部分。这就是为什么你的方法1和方法2没有区别并且打印出正确的东西
关于swift - 如果协议(protocol)扩展中具有功能实现,则是否在协议(protocol)中添加功能定义,为什么没有区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45102414/
10-14 23:49