我在golang中的一个包中定义了一个常量:
package services const ( Source = "local" )
我想让其他包可以访问这个常量,而不必将这个包导入到我的其他模块中。我该怎么做?
kkbh8khc1#
不导入服务就不能引用服务.源。但是,您可以通过在另一个包中创建一个恰好具有相同值的新常量来避免依赖性,并使用测试进行验证。也就是说,您的测试导入服务,但您的生产代码不导入。stdlib在这里和那里这样做是为了避免一些依赖。
// services.go package services const Source = "local" // foo.go package foo const Source = "local" // foo_test.go package foo import ( "services" "testing" ) func TestSource(t *testing.T) { if Source != services.Source { t.Error("Source != services.Source") } }
1条答案
按热度按时间kkbh8khc1#
不导入服务就不能引用服务.源。
但是,您可以通过在另一个包中创建一个恰好具有相同值的新常量来避免依赖性,并使用测试进行验证。也就是说,您的测试导入服务,但您的生产代码不导入。stdlib在这里和那里这样做是为了避免一些依赖。