GoGoでは、reflectパッケージを使うとリフレクションを行うことができる。そこで、以下のことを任意のstringによる動的な指定で行うことができるかを調べた。Yes関数のsend変数に関数が入っていればその変数を使って呼び出せるが、普通に定義した関数をstringから参照する手段はない。やりたければ手動でmap[string]funcにつっこんでおくしかない。...})(reflect.Value).MethodByName()でいける。メソッドも引数もいちいちreflect.Valueでラップする必要があるのがちょっと面倒。No関数のdefie_methodreflect.MakeFunc()によって関数を動的に作ることはできる(例)。このため、関数を返す関数を作るとある程度楽はできる。結局は定義済みの変数にいれなければ参照できない、というか当たり前だけどコンパイル通らない。Rubyみたいに「stringで指定した名前で呼び出せる」関数は定義できない。メソッドのdefine_method最初から目的のメソッドの型のフィールドを用意しておけばそこに動的に生成した関数をいれることはできるが、stringからフィールドを定義できない以上はこれも無理。No任意型のnewreflect.New()を使うと、何かしらの値のreflect.Typeからそのnewをとることはできる。stringで指定した型のreflect.Typeを持ってくることができないので、無理。まとめstringによるメソッド呼び出しはできるが、他のことはあまりできない。月別アーカイブ検索はてなブログをはじめよう!k0kubunさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。