Reflect.Valueをその型にキャストする方法は?
type Cat struct {
Age int
}
cat := reflect.ValueOf(obj)
fmt.Println(cat.Type()) // Cat
fmt.Println(Cat(cat).Age) // doesn't compile
fmt.Println((cat.(Cat)).Age) // same
ありがとう!
Reflect.Valueをその型にキャストする方法は?
type Cat struct {
Age int
}
cat := reflect.ValueOf(obj)
fmt.Println(cat.Type()) // Cat
fmt.Println(Cat(cat).Age) // doesn't compile
fmt.Println((cat.(Cat)).Age) // same
ありがとう!
concreteCat,_ := reflect.ValueOf(cat).Interface().(Cat)
http://golang.org/doc/articles/laws_of_reflection.html キツネの例を参照してください
type MyInt int
var x MyInt = 7
v := reflect.ValueOf(x)
y := v.Interface().(float64) // y will have type float64.
fmt.Println(y)
わかりました、見つけました
reflect.Value
Interface()
に変換する機能があります。interface{}