Go 中的常量结构

新手上路,请多包涵

为什么我不能创建常量结构?

 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: 常量初始值设定项 quzx.RssFeed 文字不是常量

原文由 ceth 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 590
2 个回答

因为 Go 不支持结构常量(强调我的)

有布尔常量、符文常量、整型常量、浮点常量、复数常量和字符串常量。 符文、整数、浮点数和复数常量统称为数字常量。

在这里阅读更多: https ://golang.org/ref/spec#Constants

原文由 mkopriva 发布,翻译遵循 CC BY-SA 3.0 许可协议

一个好的解决方法是将它包装在一个函数中。

 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 }
}

注意:确保该函数始终返回一个新对象(或副本)。

原文由 Ihor 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏