📜  Golang 中的reflect.TypeOf()函数示例

📅  最后修改于: 2021-10-25 02:14:04             🧑  作者: Mango

Go语言提供了运行时反射的内置支持实现,并允许程序在反射包的帮助下操作任意类型的对象。 Golang中的reflect.TypeOf()函数用于获取表示动态类型的反射类型一世。要访问此函数,需要在程序中导入反射包。

下面的例子说明了上述方法在 Golang 中的使用:

示例 1:

func TypeOf(i interface{}) Type

输出:

// Golang program to illustrate
// reflect.TypeOf() Function 
  
package main
  
import (
    "fmt"
    "reflect"
)
  
// Main function
func main() {
  
    tst1 := "string"
    tst2 := 10
    tst3 := 1.2
    tst4 := true
    tst5 := []string{"foo", "bar", "baz"}
    tst6 := map[string]int{"apple": 23, "tomato": 13}
  
      
    // use of TypeOf method       
    fmt.Println(reflect.TypeOf(tst1))   
    fmt.Println(reflect.TypeOf(tst2))
    fmt.Println(reflect.TypeOf(tst3))
    fmt.Println(reflect.TypeOf(tst4))
    fmt.Println(reflect.TypeOf(tst5))
    fmt.Println(reflect.TypeOf(tst6))
  
}

示例 2:

string
int
float64
bool
[]string
map[string]int

输出:

// Golang program to illustrate
// reflect.TypeOf() Function 
  
package main
  
import (
    "fmt"
    "io"
    "os"
    "reflect"
)
  
// Main function
func main() {
      
    // use of TypeOf method
    tt := reflect.TypeOf((*io.Writer)(nil)).Elem()
  
    fileType := reflect.TypeOf((*os.File)(nil))
    fmt.Println(fileType.Implements(tt))
  
}