gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:56:50 26 4
gpt4 key购买 nike

所以我想从现有的库 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,但是如果这个库有大量常量怎么办?

谢谢

最佳答案

没有“包嵌入”,所以 lib 中的常量不会神奇地显示为 mylib 中的常量。如果您想在 mylib 中提供这些相同的常量,是的,您必须提供(复制)所有这些。

but what if this library has a ton of constants ?

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

如果你想模仿 lib 的完整功能,这就提出了一个问题,你是否真的需要它,而只使用 lib 不是更简单吗mylib 的。

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

关于go - 在 Go 中创建包装器库时重新分配常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52296250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com