在 Go 中创建包装器库时重新分配常量

Reassigning constants when creating wrapper library in Go

所以我想从现有的库 A 创建我自己的包装器库。 库 A 有一些函数,也有一些常量,例如:

package lib


const(
   HeaderA = "headerA"
   HeaderB = "headerB"
)

func doWork(string header) {
   // some work
}

现在的问题是:我是否必须在我自己的库中重新分配这些常量?

package mylib
const (
    myHeaderA = lib.HeaderA
    myHeaderB = lib.HeaderB
)

这种情况下的最佳做法是什么?似乎可以重新分配它们以使用户不知道库 A,但是如果这个库有大量常量怎么办?

谢谢

没有 "package embedding",因此来自 lib 的常量不会神奇地显示为 mylib 的常量。如果您想在 mylib 中提供那些相同的常量,是的,您必须提供(复制)所有这些。

but what if this library has a ton of constants ?

然后你的任务是为这样一个有大量常量的库提供包装器,你还必须自己提供大量常量(如果 mylib 的用户确实需要所有这些常量) .

如果你想模仿 lib 的完整功能,这就提出了一个问题,你是否真的需要这个,使用 lib 而不是 [=11 不是更简单吗? =].

请注意,您可以创建一个实用程序来为 mylib 生成 .go 源文件,该文件将 "copy" lib 的所有导出常量。查看 go/parser 包作为起点。