您如何命名 Swift 协议中的函数?
How do you name the functions in a Swift Protocol?
当我像这样在 Swift 中声明协议时,对于网络模块来说:
Protocol MyNetworkProtocol {
func reportError(error: Int) // <-- do you add prefix for this?
}
如何命名协议中的函数?你给它加前缀吗?
我问这个是因为如果我按上面所示命名函数,调用者会像:
class MyClass: MyNetworkProtocol {
// some code for MyClass
func reportError(error: Int) {
// some code to handle it
}
}
如果我单独查看MyClass
中的代码,无法立即将reportError
识别为另一个class的协议实现(除非我在代码中添加一些注释).
我正在考虑这样命名协议中的函数:
Protocol MyNetworkProtocol {
func myNetworkProtocol_reportError(error: Int)
}
所以在MyClass
中,我可以很快知道它是某个class的协议的实现。这是必要的吗?我误解了一些概念吗?
不要那样做。而是将协议方法隔离到一个单独的扩展中。
class MyClass {
}
extension MyClass: MyNetworkProtocol {
func reportError(error: Int) {
// some code to handle it
}
}
在协议函数中,协议名称以协议 class 和附加参数
开头
Protocol MyNetworkProtocol {
func myNetworkProtocol(_ myNetwork: MyNetworkProtocol, _reportErrot: Int)
}
}
喜欢这个功能,方便调试
当我像这样在 Swift 中声明协议时,对于网络模块来说:
Protocol MyNetworkProtocol {
func reportError(error: Int) // <-- do you add prefix for this?
}
如何命名协议中的函数?你给它加前缀吗?
我问这个是因为如果我按上面所示命名函数,调用者会像:
class MyClass: MyNetworkProtocol {
// some code for MyClass
func reportError(error: Int) {
// some code to handle it
}
}
如果我单独查看MyClass
中的代码,无法立即将reportError
识别为另一个class的协议实现(除非我在代码中添加一些注释).
我正在考虑这样命名协议中的函数:
Protocol MyNetworkProtocol {
func myNetworkProtocol_reportError(error: Int)
}
所以在MyClass
中,我可以很快知道它是某个class的协议的实现。这是必要的吗?我误解了一些概念吗?
不要那样做。而是将协议方法隔离到一个单独的扩展中。
class MyClass {
}
extension MyClass: MyNetworkProtocol {
func reportError(error: Int) {
// some code to handle it
}
}
在协议函数中,协议名称以协议 class 和附加参数
开头Protocol MyNetworkProtocol {
func myNetworkProtocol(_ myNetwork: MyNetworkProtocol, _reportErrot: Int)
}
}
喜欢这个功能,方便调试