知识卡片

文件名后缀实现平台条件编译

专业/工作 · 486.a

内容

不同操作系统有些行为差异必须用不同代码应对(比如Windows的shell不像类Unix系统那样自动展开通配符,需要程序自己调用filepath.Glob()补上)。发散:这是把”哪份代码参与编译”这个决策从代码内部的条件语句挪到了构建系统能理解的文件系统元数据(文件名)上——好处是不同平台的实现物理上分离在不同文件里,阅读某一份实现时不会被其他平台的分支代码干扰,也没有运行时判断平台的。

参考来源

- 位置:《Go语言程序设计》第9章《包》(源文件:_epub-src/OEBPS/text00043.html) - 结论依据:原文在该章节围绕“不同操作系统有些行为差异必须用不同代码应对(比如Windows的shell不像类Unix系统那样自动展开通配符…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。 - 原始内容:里读取到比如 ["README.txt","INSTALL.txt"] 这些值。但是在Windows平台上,程序只会接收到 ["*.txt") ,我们可以使用 filepath.Glob() 函数来实现通配符的功能,但是这只需要在Windows平台上使用。 那如何决定什么时候才需要使用 filepath.Glob() 函数呢,使用 if …