Go 语言提供了运行时反射的内置支持实现,并允许程序在反射包的帮助下操作任意类型的对象。 Golang 中的reflect.StructOf()函数用于获取包含字段的struct 类型。要访问此函数,需要在程序中导入反射包。
Syntax:
Parameters: This function takes only one parameters of StructFields( fields ).
Return Value: This function returns the struct type containing fields.
下面的例子说明了上述方法在 Golang 中的使用:
示例 1:
func StructOf(fields []StructField) Type
输出:
// Golang program to illustrate
// reflect.SliceOf() Function
package main
import (
"fmt"
"reflect"
)
// Main function
func main() {
// use of StructOf method
typ := reflect.StructOf([]reflect.StructField{
{
Name: "Height",
Type: reflect.TypeOf(float64(0)),
},
{
Name: "Name",
Type: reflect.TypeOf("abc"),
},
})
fmt.Println(typ)
}
示例 2:
struct { Height float64; Name string }
输出:
// Golang program to illustrate
// reflect.SliceOf() Function
package main
import (
"fmt"
"reflect"
)
// Main function
func main() {
// use of StructOf method
tt:= reflect.StructOf([]reflect.StructField{
{
Name: "Height",
Type: reflect.TypeOf(0.0),
Tag: `json:"height"`,
},
{
Name: "Name",
Type: reflect.TypeOf("abc"),
Tag: `json:"name"`,
},
})
fmt.Println(tt.NumField())
fmt.Println(tt.Field(0))
fmt.Println(tt.Field(1))
}