私はGoで作業しています。スライスのreflect.Value表現で作業しています。私は、次があります。Goで反射を使用してスライスインデックスを設定する
slice := reflect.MakeSlice(typ, len, cap)
私はslice
からi番目の値を取得したい場合は、それは簡単です:
v := slice.Index(i) // returns a reflect.Value
しかし、私はセットへの道を見つけることができないよう i番目の値。
m.SetMapIndex(key, value) // key and value have type reflect.Value
しかし、スライスの等価があるように思えません。私はマップ、m
を持っていた場合reflect.Value
は、setterメソッドがたくさんあり、例えば、次のことが可能です。私の考えは、おそらくslice.Index(i)
から返された値が実際には何とかポインタなので、v := slice.Index(i); v.Set(newV)
を呼び出すことは効果がありますか?よく分かりません。アイデア?
ねえ、ありがとう。私はそれを考え出した(質問を掲示して銃を飛ばした:D)。 – joshlf
@ joshlf13あなたはいくつかの「反映する」質問をしたことに気付きました。上にリンクされている 'xmlutil'とその他のエンコーディングパッケージを調べてください。彼らはかなり助けてください。 – Luke
よろしくお願いいたします。あなたが興味を持っているならば、私が使用している理由は、私が "illegal"というパッケージを書いていることです。これは技術的に許可されていないアクションを実行する機能を提供しています(2つの関数ポインタ、等)。現時点ではまだギタップのプライベートレポですが(まだ準備はできていませんが)、寄稿に興味があれば、助けてもらえたらうれしいです。 – joshlf