M
M
Mastering_Go_ZH_CN
Search…
介绍
[0 前言]
[1 Go与操作系统]
[2 Go内部机制]
[3 Go基本数据类型]
4 组合类型的使用
5 数据结构
6 Go package中不为人知的知识
[7 反射和接口]
07.1 类型方法
07.2 Go的接口
07.3 类型断言
07.4 设计接口
07.5 反射
07.5.1 使用反射的简单示例
07.5.2 反射进阶
07.5.3 反射的三个缺点
07.6 Go的OOP思想
07.7 延展阅读
07.8 练习
07.9 本章小结
8 Go UNIX系统编程
9 并发-Goroutines,Channel和Pipeline
10 Go 并发-进阶讨论
11 代码测试,优化及分析
12 Go网络编程基础
13 网络编程 - 构建服务器与客户端
Powered By
GitBook
07.5.3 反射的三个缺点
毫无疑问,反射是Go语言一个强大的功能。然而,由于所有工具都使用反射,因此应谨慎使用,主要有三个原因。
第一个原因是反射的广泛使用会使程序难以阅读和维护。这个问题的一个潜在解决方案是编写好的文档;但众所周知的是开发人员并不愿意花时间来编写维护文档。
第二个原因是使用反射的Go代码会使程序运行变慢。一般来说,用于特定数据类型的Go代码总是比使用反射动态处理Go数据类型的代码运行速度快。此外,这样的动态代码将使工具很难重构或分析代码。
最后一个原因是反射错误在编译时无法捕获,并且运行时会造成
panic
异常。这意味着反射的错误可能会使程序崩溃!这可能发生在Go程序开发完成后的数月甚至数年后!这个问题的一个解决办法是在危险函数调用之前进行全面的测试。然而,这将为Go程序增加更多的代码,使程序运行的更慢。
Previous
07.5.2 反射进阶
Next
07.6 Go的OOP思想
Last modified
3yr ago
Copy link