GO语言反射机制
发布时间:2023-03-07 编辑:jiaochengji.com
教程集为您提供GO语言反射机制等资源,欢迎您收藏本站,我们将为您提供最新的GO语言反射机制资源
反射机制基本和Java等类似,可获取struct或变量的类型 值等信息。获取或修改对象的值时,一定要判断该属性是否为可操作状态,否则会导致错误。
示例代码如下:
package main
import (
"fmt"
"reflect"
)
///首字母大写表示该字段可导出,并可修改值
type User struct {
ID int
name string //未导出
Age int
}
func (u User) Info() {
fmt.Println(u)
}
func GetInfo(o interface{}) {
t := reflect.TypeOf(o)
fmt.Println(t.Name())
v := reflect.ValueOf(o)
for i := 0; i < t.NumField(); i {
f := t.Field(i)
fmt.Printf("%s\n", f.Name)
if v.Field(i).CanInterface() { //此处name未导出,所以获取Interface的时候会提示错误
val := v.Field(i).Interface()
fmt.Printf("%s:%v=%v\n", f.Name, f.Type, val)
}
}
}
func main() {
user1 := User{222, "Charles", 100}
GetInfo(user1)
}
您可能感兴趣的文章:
Go语言学习之reflect包(The way to go)
想系统学习GO语言(Golang
初识 Go 语言
golang的反射机制与实践(上)
图解 Go 反射实现原理
Go 反射机制介绍
Go语言--反射(reflect)
Go语言的主要特性和发展影响
go 语言学习历程
golang 反射_Go进阶:反射3定律
[关闭]