0
默認實現協議的是我的代碼:,枚舉
protocol Logable {
func log()
}
extension Logable where Self: Error {
func log() {
switch self {
case .Server(code: Int, message: String):
print("code = \(code), message = \(message)")
}
}
}
enum Error: Logable {
case Client(code: Int, message: String)
case Server(code: Int, message: String)
}
正如你看到的,我想創建協議LogableError
默認實現我的枚舉Error
。也許這是不可能的 - 請提供鏈接。不要在操場上運行它,它不會顯示任何東西,但是編譯器會發出錯誤: type 'Self' constrained to non-protocol type 'Error'
嘗試'自== Error'在協議擴展 – Roshan
@Roshan它給'相同類型的要求使得泛型參數「自我」非generic' – katleta3000
呀,還挺有預感這是行不通的。 ..如果你需要實現特定類型的協議,你可以在類型本身而不是協議上添加擴展... – Roshan