リフレクションを使用したテンプレートでの変数名の取得
テンプレートの処理では、マークアップ プレースホルダーを変数値で動的に置き換えることが望ましい場合があります。スライスに格納された変数を使用してテンプレートを作成するには、ソース コードから変数の名前を直接取得しようとすることがあります。ただし、リフレクションを使用するとこれは不可能であることに注意することが重要です。
リフレクションを使用すると、変数の型、値、メソッド情報にアクセスできますが、ソース コード内の名前にはアクセスできません。これは、コンパイルされたプログラムでは、ソース コードで使用されている変数名が保持されないためです。
この例では、文字列値を含むスライス sa を作成しましたが、変数名自体は含まれませんでした。したがって、reflect.TypeOf(v).Name() を使用すると、変数の名前ではなく型のみが提供されます。
この問題の解決策は、別のアプローチを使用することです。変数値をスライスに直接保存する代わりに、マップを使用して変数名とその値を関連付けることを検討してください。これにより、変数名とその値の両方にアクセスできるようになり、テンプレート置換を効果的に実行できるようになります。
以上がReflection は動的マークアップ置換のために Go テンプレートから変数名を取得できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。