Int
のプロパティを宣言するプロトコルがあります。私はまた、Protocol
に準拠しているクラスはほとんどありません。そして、これらのすべてのためにオペレータ+
をオーバーロードする必要があります。演算子+
は宣言されたプロパティに基づいて動作するので、私は各クラスでその演算子を個別に実装したくありません。プロトコル用のSwift 3オーバーロード演算子
だから私は
protocol MyProtocol {
var property: Int { get }
}
を持っていると私は成功していることが、私はエラーambiguous reference to member '+'
を取得することで動作するようにしようとしていた、実際に
extension MyProtocol {
static func +(left: MyProtocol, right: MyProtocol) -> MyProtocol {
// create and apply operations and return result
}
}
のようなものを持ってしたいと思います。
operator overload funcを各クラスに個別に移動すると、disappearedが発行されますが、まだプロトコルで動作するようにするソリューションを探しています。それはMyProtocol
が
protocol MyProtocol {
var property: Int { get }
}
func +(left: MyProtocol, right: MyProtocol) -> MyProtocol {
// create and apply operations and return result
}
これはエラーなしで動作しますが、私は:)がどのように誰かを説明できるか分からないと宣言されたファイルの中だけの方法であるので、拡張のfunc +...
外を移動することで、解決