[過去ログ] Rust part24 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
729
(2): デフォルトの名無しさん [sage] 2024/07/10(水) 18:28:13.04 ID:/bwWoePd(1) AAS
>>728
728(1): デフォルトの名無しさん [sage] 2024/07/10(水) 16:42:16.40 ID:aw6hROvm(1) AAS
>>712
>例外で値をキャッチできなくなることや値を返す抜け道になることを防ぐためだ
違うよ
勝手な想像でLSPを誤解釈しないで

substituteされる型Tに対して定義された仕様上(契約上)の振る舞いを
substituteする型Sが満たしてなければLSP違反
つまり仕様上panicを禁止したトレイトの関数を
panicする関数でimplしたらLSP違反

LSPではあくまで”仕様上定義された振る舞い”が問題
panicを禁止という概念も方法もなく不可能だよ
何をしたいの?
731: デフォルトの名無しさん [sage] 2024/07/10(水) 21:42:13.36 ID:DHf/HCo5(1) AAS
>>729
そいつはRust叩きで連投していた>>684
684(3): デフォルトの名無しさん [sage] 2024/07/09(火) 21:07:20.42 ID:YflJELWV(5/6) AAS
>>683
あるトレイトでpanic2を禁止しようとしました。事前条件(あるいは例外条件)でnopanicとしたかったけど、そんなのは無いのでとりあえずデフォルト実装でpanic禁止にしました。
しかしトレイトユーザーはそんなのお構い無しにunsafe rustでpanicを使います。ついにpanicが発生してシステムダウンしました。

LSPでケアしている問題はRustのTraitを使っている限り発生しないんじゃないんだっけ?
panicを禁止できると思い込み
unsafeを使うとpanicできると思い込んでいる
735: デフォルトの名無しさん [sage] 2024/07/10(水) 22:32:22.87 ID:dGMDZq55(1) AAS
>>729
仕様を定義するという簡単なお話がほんとにわからないのかな?

panicを例にすると頭がパニクるみたいなので
リスコフの論文にあるFIFO/LIFOの例で言い換えると
仕様としてLIFOの振る舞いを要求するトレイトの関数を
FIFOの振る舞いで実装したらLSP違反ってこと

簡単なお話でしょ?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.049s