3

私は迅速に学習しており、拡張機能での演算子のオーバーロードに関するトピックを読んでいます。

extension StreetAddress: Equatable {
    static func == (lhs: StreetAddress, rhs: StreetAddress) -> Bool {
        return
            lhs.number == rhs.number &&
            lhs.street == rhs.street &&
            lhs.unit == rhs.unit
    }
}

しかし、Equatable を採用する必要があることをどのように知ることができますか?

そのプロトコルを削除しようとしましたが、機能は同じように機能します。警告やエラーは報告されません。なんで?

4

1 に答える 1