Sử dụng gói phản ánh :
Gói phản ánh thực hiện phản xạ thời gian chạy, cho phép một chương trình thao tác với các đối tượng với các loại tùy ý. Việc sử dụng thông thường là lấy một giá trị với giao diện loại tĩnh {} và trích xuất thông tin loại động của nó bằng cách gọi TypeOf, trả về Loại.
package main
import (
"fmt"
"reflect"
)
func main() {
b := true
s := ""
n := 1
f := 1.0
a := []string{"foo", "bar", "baz"}
fmt.Println(reflect.TypeOf(b))
fmt.Println(reflect.TypeOf(s))
fmt.Println(reflect.TypeOf(n))
fmt.Println(reflect.TypeOf(f))
fmt.Println(reflect.TypeOf(a))
}
Sản xuất:
bool
string
int
float64
[]string
Sân chơi
Ví dụ sử dụng ValueOf(i interface{}).Kind()
:
package main
import (
"fmt"
"reflect"
)
func main() {
b := true
s := ""
n := 1
f := 1.0
a := []string{"foo", "bar", "baz"}
fmt.Println(reflect.ValueOf(b).Kind())
fmt.Println(reflect.ValueOf(s).Kind())
fmt.Println(reflect.ValueOf(n).Kind())
fmt.Println(reflect.ValueOf(f).Kind())
fmt.Println(reflect.ValueOf(a).Index(0).Kind()) // For slices and strings
}
Sản xuất:
bool
string
int
float64
string
Sân chơi