golang reflection

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()返回的是静态类型。

你可能感兴趣的:(golang)