關於反射的導致panic的一段程式碼,求解答

littlebeast0發表於2019-07-03
package main

import (
    "fmt"
    "reflect"
)

type Student struct {
    age int
    name string
}

func (s *Student)add(age int) {
    s.age += age;
}

func main() {

    s := &Student{20, "jack"}
    elem := reflect.ValueOf(s).Elem()
    stype := elem.Type()

    for i:=0;i<elem.NumField();i++ {
        field := elem.Field(i)
        fmt.Printf("%s,%s,%v\n", field.Type(), stype.Field(i).Name, field.Interface())    
    }
}

期望能正常輸出,但是 panic 了。我看了網上的例子寫的,基本算是抄的程式碼了,一直在 field.Interface() 那裡 panic,但是一直想不明白為啥會 panic 各位大嬸有能幫忙解答一下嗎

更多原創文章乾貨分享,請關注公眾號
  • 關於反射的導致panic的一段程式碼,求解答
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章