LoginSignup
2
1

More than 5 years have passed since last update.

golangぷちメモ2

Posted at

json.Marshalんときも同じハマり方をしたのに今回は30分くらい時間を浪費してしまったのでもうメモっておく。

MethodByName使って文字列でメソッド呼びたいとして。
(そもそもreflectパッケがあんまり早くないとかいろいろあるらしいのでこういう手法を取ろうとすること自体の是非はあるけど、一旦そこは無視)

package main

import (
    "fmt"
    "reflect"
)

type vvv struct {}
func (v *vvv) test1() {
    fmt.Println("test1")
}
func (v *vvv) Test2() {
    fmt.Println("test2")
}


func main() {
    t1 := &vvv{}
    //reflect.ValueOf(t1).MethodByName("test1").Call([]reflect.Value{})
    reflect.ValueOf(t1).MethodByName("Test2").Call([]reflect.Value{})
}

コメントアウトしてるほうは動きません。
そら確かにパッケージちげえもんな…参照できんわな…

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1