您如何命名 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)

    }
}

喜欢这个功能,方便调试