https://www.jb51.net/article/90021.htm
https://studygolang.com/articles/12348?fr=sidebar>
https://studygolang.com/articles/10871
https://www.kancloud.cn/kancloud/the-way-to-go/72528
反射
一 反射介绍
反射就是在运行时动态的获取及操作一个变量的类型信息和值信息,这是一种在程序运行期对程序本身进行访问和修改的能力。
每种语言的反射模型都不同,并且有些语言根本不支持反射。Golang语言实现了反射,反射机制就是在运行时动态的调用对象的方法和属性,官方自带的reflect包就是反射相关的,只要包含这个包就可以使用。
反射的应用场景举例:
-
1、ORM框架:book.save(),该操作需要将书籍对象所包含的字段值存入数据库的表中
程序已知的是:数据库表结构的字段名,程序可以将其读出来,拿到的是字符串格式的字段名
程序未知的是:对象book是否有与表相对应的字段
解决方案:根据字符串格式的字段名取获取对象book对应的属性值,即反射
-
2、json数据转换:把json格式的字符串转换成具体的字段