Go では、メソッド パラメーターの名前にアクセスするのが難しい場合があります。他の多くの言語とは異なり、Go は関数やメソッドの型自体にパラメータ名を保存しません。
次のメソッドを考えてみましょう:
func (t *T) TMethod(data *testData) (interface{}, *error) { ... }
リフレクションを使用してパラメータ データの名前を取得するには、次のことを試みることもできます:
reflect.ValueOf(T).MethodByName("TMethod").Type.In(0).Elem().Name()
ただし、これはデータの型名 (testData) を返します。この動作の背後にある理由は、Go の関数の独特な性質です。
パラメーター名が保存されない理由
Go では、関数の型はその入力のみを表します。および出力タイプ。パラメーター名は、関数の呼び出し方法や実行方法とは関係がないため、重要ではない情報とみなされます。これにより、言語の型システムが簡素化されます。
次の点を考慮してください:
考えられる代替案
パラメータ名はリフレクションを通じて取得できないため、次の代替案を検討してください:
Go は詳細なパラメータ情報よりもタイプ セーフティと単純さを優先することを覚えておいてください。
以上がGo でメソッドのパラメータ名を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。