go ジェネリクスを使い始めましたが、このコードがコンパイルできない理由を理解するのが困難です:
リーリー関数 xyz
では、t が文字列型であるように型制約があると仮定できないのはなぜですか?
単に f(string(p))
と書けばよいことはわかっていますが、それでも質問に対する答えに興味があります。
これは、Assignability ルールによるもので、特定のケースでは最後のルールです。
v は型パラメータであり、t は名前付き型ではありません。v の型セット内のすべての型の値を t に割り当てることができます。
Typestring
は 名前付き型であるため、t
型セット内のすべての型は string
に割り当て可能ですが、型パラメータ t
自体は string
に代入できません。
これを 名前のない型と比較できます。
リーリー以上が厳密な制約を持つ型パラメーターを、そのパラメーターを持つ関数に渡しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。