条件编译
简介
条件编译指的是只编译满足条件的代码段。
很多情况下我们的程序需要根据不同阶段、不同的使用场景做对应的设置或约束,代码中如果写了太多的判断逻辑会显得非常冗余,且可读性、可维护性也比较差,程序体积也会增加。若采用条件编译,只编译满足条件的代码段,则可以有效地避免到处写相同的判断逻辑程序体积也能够显著减小(打个比方:if…else if…else 这3个分支的逻辑仅编译满足条件的分支逻辑)。
举个例子:
某系统设计了两种模式,一种是普通模式,另一种是安全模式,系统同时只能使用一种模式。普通模式密码直接用md5,而安全模式密码用aes加密算法。这时候如果在代码里面判断当前模式再做对应的处理,可以实现目的,但不够优雅,若后续很多地方依赖于密码操作,则到处都需要先判断模式再做密码处理,写了不少冗余代码不说,还降低了可读性和可维护性(后续如有更多模式,还得到处修改),项目体积也增大了。
如果基于条件编译来构建代码,则根本不用到处写判断,只需要根据不同模式划分文件,不同模式外层调用逻辑相同但底层的逻辑不同,对于调用层而言调用的是相同的常量、变量、函数,但是由于条件编译的关系在编译期已经根据条件编译了对应的代码,此时调用层就能够根据需要去调用并执行对应的逻辑。就解决了上述到处写判断逻辑的各种问题。
说明
Golang中通过在.