Golang reflect.StructOf()函数以及示例
Go语言提供内置支持的运行时反射实现,可通过reflect包帮助程序操作任意类型的对象。Golang中的 reflect.StructOf() 函数用于获取包含字段的结构体类型。要访问此函数,需要在程序中导入reflect包。
语法:
func StructOf(fields []StructField) Type
参数: 此函数仅接收一个StructField(字段)类型的参数(fields)。
返回值: 此函数返回包含字段的结构体类型。
以下示例说明了在Golang中使用上述方法的用法:
示例1:
// Golang程序演示
// reflect.SliceOf()函数
包main
导入(
"fmt"
"reflect"
)
// 主功能
func main() {
// 使用StructOf方法
typ:= reflect.StructOf([]reflect.StructField{
{
Name: "Height",
Type: reflect.TypeOf(float64(0)),
},
{
Name: "Name",
Type: reflect.TypeOf("abc"),
},
})
fmt.Println(typ)
}
输出:
struct { Height float64; Name string }
示例2:
// Golang程序演示
// reflect.SliceOf()函数
包main
导入(
"fmt"
"reflect"
)
// 主功能
func main() {
// 使用StructOf方法
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))
}
输出:
2
{Height float64 json:"height" 0 [0] false}
{Name string json:"name" 8 [1] false}