为什么我不能创建常量结构?
const FEED_TO_INSERT = quzx.RssFeed{ 0,
"",
"desc",
"www.some-site.com",
"upd_url",
"img_title",
"img_url",
0,
0,
0,
0,
0,
100,
"alt_name",
1,
1,
1,
"test",
100,
100,
0 }
。\ rss_test.go:32:const初始化器quzx.RssFeed文字不是常量
答案 0 :(得分:36)
因为Go不支持struct constants(强调我的)
有布尔常量,符文常量,整数常量, 浮点常量,复数常量和字符串常量。 符文,整数,浮点和复数常量是统一的 称为数字常量。
在此处阅读更多内容:https://golang.org/ref/spec#Constants
答案 1 :(得分:1)
一个好的解决方法是将其包装在一个函数中。
func FEED_TO_INSERT() quzx.RssFeed {
return quzx.RssFeed{ 0,
"",
"desc",
"www.some-site.com",
"upd_url",
"img_title",
"img_url",
0,
0,
0,
0,
0,
100,
"alt_name",
1,
1,
1,
"test",
100,
100,
0 }
}
注意:确保该函数始终返回一个新对象(或副本)。
答案 2 :(得分:0)
您应该将其声明为变量。
Go允许您在模块范围内声明和初始化全局变量。
Go没有任何不变性的概念。 “ const”并不是要防止变量突变或类似的事情。