【发布时间】:2017-06-02 01:04:23
【问题描述】:
在 Python 中,我们可以在函数之外声明任何变量。我们可以简单地调用
a = 'a string' 或 b = ['asd', 'sdf', 'dfg']
我正在学习 golang,并希望做同样的事情来简单地创建一个变量并为其赋值。
我必须在函数内部进行吗?它必须在 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。
【问题讨论】:
-
Read about the
init()functions。我没有在 Go 程序之外对用 Go 编码的库做过任何事情,所以我不能说它是否会工作,但在 Go 代码中看到这些函数并不少见。