下面这段代码运行不了,是什么原因?
错在最后一行,应该怎么写?
package main
import (
"fmt"
"reflect"
)
type person struct {
Name string
}
func main() {
u := person{"Li"}
info(u)
fmt.Println(u)
}
func info(o interface{}) {
v := reflect.ValueOf(o)
v.Elem().FieldByName("Name").SetString("Wang")
}
更多评论
polaris
社区,需要你我一同完善!
改为:
u := &person{"Li"}
就可以了。
具体原因可以参考 http://docs.studygolang.com/pkg/reflect/#Value.CanSet
#1