[過去ログ] Rust part24 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
684(3): デフォルトの名無しさん [sage] 2024/07/09(火) 21:07:20.42 ID:YflJELWV(5/6) AAS
>>683683(1): デフォルトの名無しさん [sage] 2024/07/09(火) 20:49:10.75 ID:sTXYSGuF(1/2) AAS
簡単な話だよな
オブジェクト指向プログラミングで
例えばクラスを使うと
LSPに違反する二つの型のコード例を容易に作れてしまう
つまりクラスは本質的に欠陥品なんだよ
Rustのトレイトを使うと
LSPに違反する二つの型のコード例を作ることができない
つまりRustのトレイトは優れた方式なんだよ
あるトレイトでpanic2を禁止しようとしました。事前条件(あるいは例外条件)でnopanicとしたかったけど、そんなのは無いのでとりあえずデフォルト実装でpanic禁止にしました。
しかしトレイトユーザーはそんなのお構い無しにunsafe rustでpanicを使います。ついにpanicが発生してシステムダウンしました。
LSPでケアしている問題はRustのTraitを使っている限り発生しないんじゃないんだっけ?
687: デフォルトの名無しさん [sage] 2024/07/09(火) 22:36:56.01 ID:YflJELWV(6/6) AAS
>>685685(4): デフォルトの名無しさん [sage] 2024/07/09(火) 21:56:05.19 ID:sTXYSGuF(2/2) AAS
Rustのトレイトは優れているため
LSPに違反するコード例を作ることができないんだよ
もしRustに文句をつけたかったら
LSPに違反する二つの型のコード例を作って示してごらん
Rustで違反例を作るのは不可能だよ
>>684みたいに、
トレイトがpanicを禁止したいのに、ユーザーのトレイト実装がpanicを返す
というのはLSP違反だろ。
714(1): デフォルトの名無しさん [sage] 2024/07/10(水) 04:10:08.62 ID:xXJVwGE7(1) AAS
>>684
>panic禁止にしました。
たとえno_std環境であろうとpanicは禁止にできない
>unsafe rustでpanicを使います。
panicを引き起こすのも扱うのもunsafeを必要としない
>panicが発生してシステムダウンしました。
panic発生がそのままシステムダウンではない
何ら特別な設定をしない標準状態でもスレッド内で起きたpanicはエラーとして返るだけで他のスレッドは動き続ける
731: デフォルトの名無しさん [sage] 2024/07/10(水) 21:42:13.36 ID:DHf/HCo5(1) AAS
>>729そいつはRust叩きで連投していた>>684
panicを禁止できると思い込み
unsafeを使うとpanicできると思い込んでいる
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.039s