我使用反射爲我建立一個庫,但有件事情我不理解reflect.New
。reflect.New返回<nil>代替初始化結構
type A struct {
A int
B string
}
func main() {
real := new(A)
reflected := reflect.New(reflect.TypeOf(real)).Elem().Interface()
fmt.Println(real)
fmt.Println(reflected)
}
給出:
$ go run *go
&{0 }
<nil>
是不是reflect.New
應該返回&{0 }
嗎? (Runnable Version)
最後,我希望能夠遍歷反射結構的字段(reflected.NumField()
給reflected.NumField undefined (type interface {} is interface with no methods)
),並使用SetInt
,SetString
等。
感謝,