外出先でジェネリックを実験し始めたところ、失敗した理由が完全に理解できない状況に遭遇しました。
次の関数をリファクタリングしました:
リーリーこれを入力してください:
リーリーこの関数の単体テストはエラーで失敗しました: tests/utils/numberutils_test.go:82:50: t を推論できません
。ソースは次のとおりです:
同様の関数を int から generic に変更しましたが、なぜこの関数が具体的に機能しないのかわかりません。別の関数を返す関数と関係があるのではないかと思いますが、その理由は正確にはわかりません。ありがとう。
通常、答えは型パラメータ提案:
にあります。推論できる型パラメータは、関数 (非型) 入力パラメータ型に使用されるものだけです。関数の結果パラメーターの型のみ、または関数本体のみに使用される型パラメーターがある場合、関数パラメーターの型推論を使用してそれらの型パラメーターを推論することはできません。
###の場合### リーリー型パラメータ
t がパラメータ リストに表示されないため、対応する型パラメータを推測できません。
以上が関数が関数を返すときに Go ジェネリックスが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。