ใช้แพ็คเกจการสะท้อนแสง :
แพคเกจสะท้อนให้เห็นถึงการดำเนินการสะท้อนให้เห็นถึงเวลาทำงานทำให้โปรแกรมในการจัดการวัตถุที่มีประเภทโดยพลการ การใช้งานทั่วไปคือการรับค่าด้วยส่วนติดต่อประเภทคงที่ {} และดึงข้อมูลประเภทแบบไดนามิกโดยการเรียก TypeOf ซึ่งจะส่งกลับประเภท
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))
}
ผลิต:
bool
string
int
float64
[]string
สนามเด็กเล่น
ตัวอย่างการใช้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
}
ผลิต:
bool
string
int
float64
string
สนามเด็กเล่น