GO语言反射机制
来源:互联网 发布:网络接线盒 编辑:程序博客网 时间:2024/05/16 16:15
反射机制基本和Java等类似,可获取struct或变量的类型 值等信息。获取或修改对象的值时,一定要判断该属性是否为可操作状态,否则会导致错误。
示例代码如下:
package mainimport ("fmt""reflect")///首字母大写表示该字段可导出,并可修改值type User struct {ID intname 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)}
0 0
- GO语言反射机制
- go语言快速入门:go的反射机制(22)
- go-反射机制
- go语言反射reflect
- Go语言反射的使用
- Go语言_反射篇
- 阅读谢大的beedb,学习Go语言的反射机制
- java语言反射机制
- Go语言中Channel机制
- Go 语言并发机制初探
- go的反射机制和interface
- 59.笔记go语言——go语言中的反射
- go语言中的反射的使用
- go语言中的接口类型与反射
- Go语言的反射三定律
- Java语言的反射机制
- Java 语言的反射机制
- JAVA语言的反射机制
- #iOS开发笔记#未找到应用程序的“aps-environment”的授权字符串/“no valid aps-environment entitlement found for application
- HOW TO LINK THE TRANSACTION_SOURCE_ID TO TRANSACTION_SOURCE_TYPE_ID
- 组合模式
- js面向原型话语言总结
- MFC快捷键
- GO语言反射机制
- MyBatis指定JdbcType
- Linux必学的60个命令
- SIFT 特征提取算法总结
- 本地开发spark代码上传spark集群服务并运行(基于spark官网文档)
- java解惑之字符之谜(谜题14)
- android handler的警告Handler Class Should be Static or Leaks Occur
- jQuery 动态绑定的方法多次执行的解决jQuery(document).on(
- 笔记:Hadoop权威指南 第3章 HDFS