go 1.18 でジェネリックスをテストしており、この例を調べました。 その例を再作成したいのですが、int スライスまたは float スライスを渡すことができ、関数内でスライス内のすべてを合計します。
これは、スライスを反復処理しているときにいくつかの問題に遭遇したときです。私が試したことは次のとおりです:
リーリーエラーが表示されます:
リーリーこの目標を達成するにはどうすればよいですか?
インターフェイスの コア タイプ (インターフェイス制約を含む) は次のように定義されます。
次の条件のいずれかが満たされる場合、インターフェイス t はコア タイプを持ちます。 満足する:###
uがあり、これはt型セットのすべての型の基礎となる型です
基礎となる型 ([]int64 と []float64
) があるため、インターフェイス制約にはコア型がありません。
したがって、コアタイプが必要な場所では使用できません。特に
と make
です。
基本型を必要とするようにインターフェイスを変更し、関数シグネチャでスライスを指定できます。
これも機能しますが、より冗長になります:
リーリー以上がジェネリック関数で渡されたスライスの結合を反復するにはどうすればよいですか? (Tコアレスタイプ)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。