大家好。我是GO的新手,需要一些帮助。我有一个具有这种结构的项目
但是让我假装我的逻辑包中有100500个项目。如果我只需要为特定包导入一个或两个文件,该怎么办?我可以这样做,还是只能导入完整的包裹?
答案 0 :(得分:8)
不,在Go中导入包而不是文件。但是,编译器通常只包含已编译的二进制函数和实际引用的类型,因此即使在导入中包含大量包(不管怎么说都不鼓励),它们通常也不会被包括在除非需要,否则最后的二进制文件。
正如RayfenWindspear指出的那样,如果一个包足够大,你只想导入一两个文件,那么你可能需要重构该包,这可能是一个非常好的气味测试。
答案 1 :(得分:0)
我意识到这个问题基本上已经得到了回答。但无论如何,这是我的想法。
如果特定文件可以独立于包的其余部分工作,或者通过一些小的修改来完成,您只需将这些文件复制到要使用它们的项目中即可。然后直接引用函数/方法/等。但是如果你在各种项目中使用大包装的一部分,那么将它分解成更小的包装肯定更合适。然后,您可以在任意数量的项目中独立使用这些部件,而无需多余的行李。