我是 Go 的新手。这个问题让我抓狂。你如何在 Go 中初始化结构数组?
type opt struct {
shortnm char
longnm, help string
needArg bool
}
const basename_opts []opt {
opt {
shortnm: 'a',
longnm: "multiple",
needArg: false,
help: "Usage for a"}
},
opt {
shortnm: 'b',
longnm: "b-option",
needArg: false,
help: "Usage for b"}
}
编译器说它期待 ;
在 []opt
之后。
我应该在哪里放置大括号 {
来初始化我的结构数组?
原文由 daniel.widyanto 发布,翻译遵循 CC BY-SA 4.0 许可协议
看起来您正在尝试(几乎)直接使用 C 代码。 Go有一些不同之处。
const
。术语const
在 Go 中有不同的含义,因为它在 C 中。列表应该定义为var
相反。basenameOpts
而不是basename_opts
。char
类型。您可能需要byte
(或rune
如果您打算允许 unicode 代码点)。var x = foo
。例如:
另一种方法是声明列表及其类型,然后使用
init
函数来填充它。如果您打算在数据结构中使用函数返回的值,这将非常有用。init
函数在程序初始化时运行,并保证在main
执行之前完成。您可以在一个包中甚至在同一个源文件中拥有多个init
函数。由于您是 Go 的新手,我强烈建议您阅读 语言规范。它很短,写得很清楚。它会为你清除很多这些小怪癖。