下面这段代码运行不了,是什么原因? 错在最后一行,应该怎么写?
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")
}
有疑问加站长微信联系(非本文作者)

改为:
u := &person{"Li"}
就可以了。
具体原因可以参考 http://docs.studygolang.com/pkg/reflect/#Value.CanSet
我晕了,昨晚这样试过了,怎么会不行? 感谢站长!