Golang的reflection基础概念整理:
package main
import (
"fmt"
"reflect"
)
func main() {
type MyInt int
var x MyInt = 7
v := reflect.ValueOf(x)
fmt.Println("v.Kind(): ",v.Kind())
fmt.Println("reflect.TypeOf(x):",reflect.TypeOf(x))
}
输出为:
v.Kind(): int
reflect.TypeOf(x): main.MyInt
上例表明reflect.ValueOf().Kind()返回的是最底层(underlaying)的类型而不是静态类型;reflect.TypeOf()返回的是静态类型。