课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
反射是程序员在学习计算机编程开发语言的时候需要重点掌握的一个编程知识点,下面我们就通过案例分析来了解一下,go语言编程反射概念与实践应用。
反射是指在程序运行期对程序本身进行访问和修改的能力,程序在编译时变量被转换为内存地址,变量名不会被编译器写入到可执行部分,在运行程序时程序无法获取自身的信息。
反射可以在程序编译期将变量的反射信息,如字段名称、类型信息、结构体信息等整合到可执行文件中,并给程序提供接口访问反射信息,这样就可以在程序运行期获取类型的反射信息,并且有能力修改它们。
reflect包
Go语言中的反射是由reflect包提供支持的,reflect包提供了reflect.TypeOf和reflect.ValueOf两个函数来获取任意对象的Value和Type。
reflect包实现了运行时的反射能力,能够让程序操作不同类型的对象。反射包中有两对非常重要的函数和类型,两个函数分别是:
reflect.TypeOf能获取类型信息;
reflect.ValueOf能获取数据的运行时表示;
通过反射修改值
反射也可以用来修改变量的值,那么一定要传入变量的指针类型,这样才能修改原来的值。同时需要使用到reflect.ValueOf(v).Elem()方法。
Elem返回v持有的接口保管的值的Value封装,或者v持有的指针指向的值的Value封装。如果v的Kind不是Interface或Ptr会panic;如果v持有的值为nil,会返回Value零值。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。