目录
Go语言的反射机制是指在程序运行期间检查变量和类型的能力。通过反射,可以在运行时获取变量的类型信息,调用变量的方法和修改变量的值,以及在运行时动态创建和修改类型和对象。这一机制在Go中主要通过reflect标准库实现。
1,反射优缺点
反射的优点:
可以在一定程序上避免硬编码,提供灵活性和通用性;
可以作为一个第一个类对象发现并修改源代码的结构(如代码块,类,方法,协议等);
反射的缺点:
由于将部分类型检查工作从编译期推迟到了运行时,使得一些隐藏的问题无法通过编译期发现,提高了代码出现bug的几率,搞不好就会panic;
反射出变量的类型需要额外的开销,降低了代码的运行效率;
反射的概念和语法比较抽象,过多的使用反射,使得代码难以被其他人读懂,不利于合作与交流;