問題タブ [go-reflect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6715 参照

go - 反射型からのスライスの作成

からスライスを作成しようとしていますreflect.Type。これは私がこれまでに持っているものです。

ただし、次のエラーが発生し、への変換をハードコーディングせずに回避する方法がわかりません[]TestStruct

interface{}からへの変換をハードコードすることなく、返されたインターフェイスをスライスとして扱う方法はあります[]TestStructか?

0 投票する
2 に答える
6319 参照

variables - Golang 動的変数リファレンス

Goでは、このようなことをしたいと思います。多くの構造体を持つ大きなオブジェクトがあります (Google の を使用protobuf)。これは不自然な例です:

物事を動的に参照できるようにしたいと思います。例えば:

これはGoで可能ですか?もしそうなら、どうすればそれを行うことができますか? 基本的に、オブジェクトのサブセットのみを含むレポートを作成しています。ユーザーがキー/値を一緒にマップでき、プログラムが値を出力できるマッピング ファイルを作成できるようにしたいと考えています。私はこれをPythonで動作させていますが、Goを使ってみたかった:)

0 投票する
3 に答える
2315 参照

go - スライスをreflect.Newし、reflect.AppendSliceをソーススライスに追加する方法

いいねして別のスライスに追加しreflect.Newたい。[]interface{}[]int

reflect.New私のコードにはエラーがあるはずですが、それを正しくする方法と、および使用法を深く理解する方法がわかりませんreflect.AppendSlice

しかし、それはエラーを出します:

ゴラン遊び場

0 投票する
2 に答える
402 参照

pointers - Reflect.AppendSlice の結果をポインタに代入

interface{}このコードは、スライス上で効果的に左回転し、入力パラメーターとして受け入れるより一般的なバージョンに変換するのに問題があります。

最終的な課題に問題があります:

エラー メッセージは次のとおりですinvalid indirect of a (type {})。の値ainterface{}、したがって*a =、ポインターが指しているスペースに右側の値を割り当てることになります。しかし、私の電話はAppendSlice戻っValueてきます。型アサーションがどこで発生する必要があるのか​​ わかりません.左側にあると思いますか?

0 投票する
1 に答える
4823 参照

go - リフレクションを介して名前から型表現を取得するには?

Go でリフレクション ライブラリを使用して、型の名前からその表現に移動する方法はありますか?

ユーザーがコード生成のために型表現を提供する必要があるライブラリがあります。そのタイプの変数を作成してTypeOf 関数を呼び出すだけでよいため、(ある意味で)可能であるに違いないことはわかっていますが、これを回避して名前から表現を取得する方法はありますか?

0 投票する
0 に答える
414 参照

json - Golang - リフレクトと再帰を使用した JSON のマッピング

map[string]interface{}Reflectと recursionを使用して json データをマップしようとしています。関数は期待どおりに機能しますが、ネストされた json に関してはすべての値をマッピングしていません。

私はこの次のjson構造を持っています:

これをフィールドの文字列と値のインターフェイスにマップしようとしています。フィールドの文字列がネストされている場合はドットで結合されます.。たとえば、マッピングtitlemap[title:brand new restarant with changed name]都市用nameであり、次のidようになりますmap[address.city.id:25 address.city.name:Dhaka]

私はこのスクリプトを書きました。

私の目標は、ネストされたjsonのキーがwhichのような文字列になり、値が最後の子の値になるkeyマップを取得することですvalueparent.child.child.childjson path

最終的な出力は次map[address.city.id:25 address.city.name:Dhaka address.postal:1213 r_id:123456 title:brand new restarant with changed name descripton:here are some new desciption ...]map[address.city.id:25 address.city.name:Dhaka r_id:123456 title:brand new restarant with changed name]ようdescriptionになりstateます。

タイプをソートしてから再帰関数を実行する必要があると思いますか?