猿问

Golang:使整个包操作系统特定

虽然我了解到我可以使用 go build 标记 ( // +build windows) 或文件名后缀 ( source_windows.go) 使 go 源文件成为操作系统特定的,但有没有办法使包目录中的所有源文件都成为操作系统特定的?

猜测:一个包名是否mypackage_windows会使包目录下的所有文件都只在 Windows 下?

如果上述猜测不起作用,我是否必须进行额外的间接级别,例如mypackage_usecase_windows.go,其中包含相应的导入语句:import "mymodule/mypackage_windows"


largeQ
浏览 90回答 1
1回答

米脂

不,唯一的方法是使该包内的所有文件都遵循文件名模式或在其中具有所需的构建约束。基于文件名模式的构建约束仅在源文件级别起作用。mypackage使用操作系统或特定于体系结构的代码拥有和维护相同的 N 个实现没有多大意义。当前的工具为您提供了一种方法,让您可以mypackage根据操作系统或架构决定如何实现其功能(在该包内的平台特定源文件中)。
随时随地看视频慕课网APP

相关分类

Go
我要回答