Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
9 lines (5 sloc) 1.03 KB

反射的三个缺点

毫无疑问,反射是Go语言一个强大的功能。然而,由于所有工具都使用反射,因此应谨慎使用,主要有三个原因。

第一个原因是反射的广泛使用会使程序难以阅读和维护。这个问题的一个潜在解决方案是编写好的文档;但众所周知的是开发人员并不愿意花时间来编写维护文档。

第二个原因是使用反射的Go代码会使程序运行变慢。一般来说,用于特定数据类型的Go代码总是比使用反射动态处理Go数据类型的代码运行速度快。此外,这样的动态代码将使工具很难重构或分析代码。

最后一个原因是反射错误在编译时无法捕获,并且运行时会造成panic异常。这意味着反射的错误可能会使程序崩溃!这可能发生在Go程序开发完成后的数月甚至数年后!这个问题的一个解决办法是在危险函数调用之前进行全面的测试。然而,这将为Go程序增加更多的代码,使程序运行的更慢。

You can’t perform that action at this time.