gpt4 book ai didi

python - 在函数之外的 golang 中设置常量,就像在 Python 中一样

转载 作者:IT王子 更新时间:2023-10-29 02:21:55 26 4
gpt4 key购买 nike

在 Python 中,我们可以在函数外声明任何变量。我们可以简单地调用

a = 'a string'b = ['asd', 'sdf', 'dfg']

我正在学习 golang,并且想做同样的事情来简单地创建一个变量并为其赋值。

我必须在 func 中执行吗?它必须在 func main 中吗?

到目前为止我有

func main() {

var A_LIST []string
A_LIST = append(A_LIST, "str1", "str2")

var B_LIST []string
B_LIST = append(B_LIST, "str3", "str4")
}

如果我写一个 fmt.Println,它可以构建并且我可以打印出这两个变量

但是如果我想将它构建到一个 .so 文件中以便我的 python 脚本可以导入它,这是正确的做法吗?

编辑(更新):按照建议写出一些代码来解释我打算做什么

我想要多个列表来对我的标签进行分类。在 Python 中,它看起来像:

tag_category1 = ['tag1', 'tag2', 'tag3']
tag_category2 = ['tag4', 'tag5', 'tag6']

该函数将接收标签列表并对它们进行分类。

tags = ['tag1', 'tag3', 'tag6', 'tag7']
new_tags = {}
for tag in tags:
if tag in tag_category1:
new_tag['category1'].append(tag)
elif tag in tag_category2:
new_tag['category2'].append(tag)
else:
new_tag['others'].append(tag)
return new_tags

所以结果应该是

new_tags = {
'category1': ['tag1', 'tag3'],
'category2': ['tag6'],
'others':['tag7']
}

我想在 go 中编写这个函数,而且,由于这个函数最初是在另一个 python 脚本中使用的,所以我希望能够导入它。对于那个 python 脚本,我仍然无法找到我在 go 中使用的一些 util 库,所以我必须继续使用 python。

最佳答案

不,您不必在函数内声明变量。但是,您不能使用 append,因为 append 是一个非声明语句,您不能在函数外部使用它。相反,您可以使用文字声明变量,在本例中为 slice 文字,即:

var A_LIST = []string{"str1", "str2"}

您可以在 crypto.go 中看到这方面的示例包,从第 42 行开始:

var digestSizes = []uint8{
MD4: 16,
... //omitted for this post
RIPEMD160: 20,

看到它在 playground 中有效

如果您需要做的更多,那么只需对值进行硬编码,这种方法似乎不太可行。对于任何更动态的东西,您将需要一个功能。这可以是 init() 函数、main() 或任何其他函数,只要您知道声明变量的时间/地点的范围,以及变量/函数的初始化顺序/打电话。

关于 .so 文件和声明这些变量的适当位置,我不知道。尝试不同的方法,看看哪些有效/无效,然后找出原因。

关于python - 在函数之外的 golang 中设置常量,就像在 Python 中一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44319320/

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