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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
816
(1): デフォルトの名無しさん [sage] 2024/07/13(土) 11:44:56.49 ID:4Ly9sDTU(1) AAS
>>815
815(1): デフォルトの名無しさん [] 2024/07/13(土) 11:36:15.00 ID:mV5TIlCk(2/8) AAS
よく分からんけど
fn do_somethg(x: impl T)
にS型のオブジェクトoを渡すなら、do_somethingにとって o is T が成り立つんじゃない?
この関数は渡された o が S1 なのか S2 なのかは認識しないのだし
fn foo(x: impl T)は単相化されて
fn foo(x: S1)と
fn foo(x: S2)の二つの関数になるんだよ
いずれにしてもxはS1の値かS2の値であって
Tの値は存在しないね
819: デフォルトの名無しさん [sage] 2024/07/13(土) 12:02:36.42 ID:7b/8td6H(1) AAS
>>812,814,816
812(3): デフォルトの名無しさん [sage] 2024/07/13(土) 10:59:18.93 ID:SqKWY/h6(1) AAS
>>767 >>768
>traitが実装される具体的な型は全てsubtypeに相当する兄弟同士であるため
>supertrait/subtraitの場合に例えばある構造体についてそのインスタンスはどちらも同一になるから
どちらも同じ勘違いをしてるよ
よく読もうね

What is wanted here is something like the following substitution property:
If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T,
the behavior of P is unchanged when o1 is substituted for o2 then S is a subtype of T
814(1): デフォルトの名無しさん [sage] 2024/07/13(土) 11:14:27.08 ID:3n/3tOrD(1) AAS
>>812
そこでRustの場合はTがトレイトでSが構造体などの各型で
「impl T for S 」とS型にトレイトTを実装して
「let o1: S = ...」がS型の値(=オブジェクト)になる
『object o1 of type S』 ←存在する
『object o2 of type T』 ←存在しない
したがってRustのトレイトはLSPとなんら関係がない
なんで毎回飛んでレスするの?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.038s