[過去ログ] Rust part24 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
829(1): デフォルトの名無しさん [sage] 2024/07/13(土) 14:35:50.27 ID:MYuplL5h(1/3) AAS
つまりRustのトレイトは
LSPの原義に従うと対象外となり
拡張して考えるとLSPを常に満たす
ことになるわけか
831(3): デフォルトの名無しさん [sage] 2024/07/13(土) 15:38:58.70 ID:MYuplL5h(2/3) AAS
>>830830(2): デフォルトの名無しさん [] 2024/07/13(土) 15:25:32.20 ID:mV5TIlCk(5/8) AAS
>>829
意味の上で考えるとしても「常に」は満たさないかと
struct MyString(String);
impl Clone for MyString {
fn clone(&self) -> Self {
Self("元の文字列と関係ない文字列".to_string())
}
}
のようにすれば、そのトレイトが期待する動作に反した型は作れるわけで
引数や戻り値のシグニチャの同一性だけに注目するならtraitに違反することはできないけど、それなら継承やインタフェースでも同じで、「LSPに違反してはならない」という原則はそもそも意味がない (常に違反できないから) ってことになるし
それLSPのどの項目に違反してる?
LSPは振る舞いに関する形式的なものなのでそのような意味論にまでは踏み込んでいないよ
837: デフォルトの名無しさん [sage] 2024/07/13(土) 16:10:18.20 ID:MYuplL5h(3/3) AAS
>>836836(1): デフォルトの名無しさん [sage] 2024/07/13(土) 16:03:55.44 ID:E+PNnzD+(2/2) AAS
829でPartialEq/PartialOrdを例に出したのは
この2つのtraitがsuper/subの関係にあるからで
Cloneとその実装型の関係とは別だよ
PartialEqとPartialOrdの等価判定についてのLSPを考えてる
PartialOrd: PartialEqとする以上
PartialOrdの比較はPartialEqの等価条件を保存すべき←LSP?
みたいな
確かにそちらの例は二つのトレイトがsuperとsubの関係だからLSPを満たしてるけど
>>830の例はLSPとは関係ないな
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.040s