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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
684
(3): デフォルトの名無しさん [sage] 2024/07/09(火) 21:07:20.42 ID:YflJELWV(5/6) AAS
>>683
683(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
>>685
685(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
729(2): デフォルトの名無しさん [sage] 2024/07/10(水) 18:28:13.04 ID:/bwWoePd(1) AAS
>>728
panicを禁止という概念も方法もなく不可能だよ
何をしたいの?
そいつはRust叩きで連投していた>>684
panicを禁止できると思い込み
unsafeを使うとpanicできると思い込んでいる
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.039s