[過去ログ]
Rust part24 (1002レス)
Rust part24 http://mevius.5ch.net/test/read.cgi/tech/1716759686/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
831: デフォルトの名無しさん [sage] 2024/07/13(土) 15:38:58.70 ID:MYuplL5h >>830 それLSPのどの項目に違反してる? LSPは振る舞いに関する形式的なものなのでそのような意味論にまでは踏み込んでいないよ http://mevius.5ch.net/test/read.cgi/tech/1716759686/831
832: デフォルトの名無しさん [] 2024/07/13(土) 15:50:29.46 ID:mV5TIlCk >>831 例えば fn test_clone(x: impl Clone + PartialEq) { assert!(x.clone(), x); } はClone および PartialEq トレイトの振る舞いに依存したコードだけど、この振る舞いに反した型は作れるよね トレイトは事後要件 (x.clone() == x) を定義できないし、そもそも Clone はそれを担保していないと主張することはできるけど、それならLPSって何のためにあるんだ?ってなるし http://mevius.5ch.net/test/read.cgi/tech/1716759686/832
835: デフォルトの名無しさん [sage] 2024/07/13(土) 15:57:24.24 ID:UG7jOJ2R >>831 不変条件を弱められないルールだろう。 不変条件はシグネチャや定義域で表現できないものも含めた振る舞いの仕様全てのことで、挙動が (仕様に照らして) 望ましくなければ原則を満たさないと言える。 http://mevius.5ch.net/test/read.cgi/tech/1716759686/835
838: デフォルトの名無しさん [] 2024/07/13(土) 17:43:27.19 ID:mV5TIlCk >>831 意味でなく形式に拘るなら「事後要件を弱めてはいけない」などのルールは、要件がプログラム等の形式で表現されない限りLSPの評価の土台にすら上がらないってことにならない? Cloneトレイトは公式のドキュメントに // Required method fn clone(&self) -> Self; Returns a copy of the value. とあって、exampleでは実際に assert_eq を使って説明しているので、この説明を元にCloneトレイトを実装する型の妥当性を判断して良いように思う これでもまだ「それは意味論上のものでしかない」というなら、逆にそれをクリアしてクラス間の振る舞いを示している現実的な例を教えてくれ http://mevius.5ch.net/test/read.cgi/tech/1716759686/838
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.044s