go使用之-编译约束

栏目: Go · 发布时间: 5年前

内容简介:今天无意中看到一套代码,关于获取系统实时运行状况的开源带着疑惑,我去网上搜了一下,了解到了一个新的名词 :

今天无意中看到一套代码,关于获取系统实时运行状况的开源 ,里面没有任何关于系统选择,但是一个包下面,以不同系统名字结尾,例如*_linux.go,*_darwin.go结尾,而且文件内的方法又是同名,众所周知,go的同一包下面,如果方法同名是会报错的,于是乎特别好奇, why?

2、解决疑惑-构建约束

带着疑惑,我去网上搜了一下,了解到了一个新的名词 : build constraints(构建约束) ,其实这个在c++里面还是经常会看到,但是作为一个 go 开发者,现在才知道 ‍♀ 。️看官方解释:

go使用之-编译约束

里面清除描述了,编译便签(build tags 勉强翻译哈),可以让你在构建的时候自动选择那些文件编译,那些文件不编译,并且不止作用于go文件,如果要用,就必须出现在在文件开头,而且之后还要有空行。

3、如今了解了有这个东西,那这个build targs 到底有哪些呢,怎么用呢?

也去网上搜了下这些tags: + (编译)、 !(忽略)...

样子长下面这样

go使用之-编译约束
go使用之-编译约束

当然还有其他的些约束,例如指定go版本等等,使用时再做细细研究吧!

4、解决了什么问题?

这个主要解决了代码解耦问题,例如我们写的采集器,会针对不同的系统都有要一套采集代码,返回结果是一样的。如果采用这中方式,只需针对不同的系统要增加文件即可。完美解决了以前都是先判断系统,然后switch的方式。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

网站项目管理

网站项目管理

[美] 阿什利·弗里德莱因 / 李保庆、杨磊、王增东 / 电子工业出版社 / 2002-11 / 32.00元

这本书全方位地介绍了如何建立和最终交付一个具有很高商业价值的成功网站,讲解从项目管理的角度入手,撇开烦琐的技术细节,更加关注Web项目实施中诸如成本、进度、工作范围等问题,涉及了一个商业网站在实施过程中可能遇到的所有管理细节。书内附国际一流网站开发专家的深邃见解;涵盖了网络项目管理的关键原则及案例研究;通过友情链接,还为读者提供了模板、论坛、术语表、相关链接以及有关因特网知识的测验题。一起来看看 《网站项目管理》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具