栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Go中封装平台特定代码的正确方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Go中封装平台特定代码的正确方法是什么?

平台特定代码的解决方案是构建约束。

构建约束,也称为构建标记,是开始的行注释

// +build

列出了在文件中应包含文件的条件。约束可能会出现在任何类型的源文件中(不仅是Go),但它们必须出现在文件顶部附近,并且只能出现空白行和其他行注释。这些规则意味着在Go文件中,构建约束必须出现在package子句之前。

因此,基本上每个平台特定的Go代码都应该放入不同的文件中,并且您可以将这些Go文件中的每个标记为目标文件。

例如,如果文件包含Linux特定代码(例如syscalls),请使用以下命令启动它:

// +build linux

如果文件包含Windows特定的系统调用,请使用以下命令启动它:

// +build windows

还有更多“选项”可用,请阅读链接的文档。例如,您可以指定对OS,体系结构,Go版本以及所使用的编译器的约束。您还可以指定将使用逻辑OR或AND进行解释的多个约束,或者可以使用取反(例如,此代码适用于除Linux之外的每个目标平台)。

您甚至

.go
可以通过以下约束将文件标记为要忽略:

// +build ignore

请注意,构建约束是特定于编译器的。如果特定的编译器无法识别构建约束,则编译器将忽略该文件。例如,Go AppEngine
SDK带有一个内置的,经过修改的Go编译器,该编译器还可以识别

// +build appengine

约束,这意味着源文件仅适用于Google App Engine平台。“常规” Go编译器将忽略该文件,如果有人尝试在没有Go AppEngine
SDK的情况下构建代码,则可能不会出现一堆编译器错误。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448180.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号