为什么我不能创建常量结构?
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 }
Run Code Online (Sandbox Code Playgroud)
.\ rss_test.go:32:const初始化器quzx.RssFeed文字不是常量
mko*_*iva 45
因为Go不支持struct常量(强调我的)
有布尔常量,符文常量,整数常量,浮点常数,复数常量和字符串常量. 符文,整数,浮点和复数常量统称为数字常量.
在这里阅读更多内容:https://golang.org/ref/spec#Constants
您应该将其声明为 var。
Go 允许您在模块范围内声明和初始化全局变量。
Go 没有任何不变性的概念。'const' 并不是为了防止变量发生变异或类似的事情。
小智 5
一个好的解决方法是将其包装在一个函数中。
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 }
}
Run Code Online (Sandbox Code Playgroud)
注意:确保函数始终返回新对象(或副本)。
| 归档时间: |
|
| 查看次数: |
27869 次 |
| 最近记录: |