Go语言提供了运行时反射的内置支持实现,并允许程序在反射包的帮助下操作任意类型的对象。 Golang中的reflect.TypeOf()函数用于获取表示动态类型的反射类型一世。要访问此函数,需要在程序中导入反射包。
Syntax:
Parameters: This function takes only one parameters of interface( i ).
Return Value: This function returns the reflection Type.
下面的例子说明了上述方法在 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))
}