下面的代码:
type room struct {
width float32
length float32
}
type house struct{
s := make([]string, 3)
name string
roomSzSlice := make([]room, 3)
}
func main() {
}
当我尝试构建和运行它时,我得到了以下错误:
c:\go\src\test\main.go:10: syntax error: unexpected :=
c:\go\src\test\main.go:11: non-declaration statement outside function body
c:\go\src\test\main.go:12: non-declaration statement outside function body
c:\go\src\test\main.go:13: syntax error: unexpected }
我做错什么了?
谢谢!
3条答案
按热度按时间v1uwarro1#
你可以在struct声明中声明一个slice,但是你不能初始化它,你必须用不同的方法来完成。
请将以上内容视为**runnable example on Go Playground**
编辑
要按照注解中的要求部分初始化结构体,只需更改
请再次将以上内容视为**runnable example on Go Playground**
n3schb8v2#
首先,你不能在结构内部赋值/初始化。:=操作符声明和赋值。然而,你可以简单地实现相同的结果。
下面是一个简单的例子,它大致可以完成您正在尝试的工作:
我从来没有这样写过,但如果它服务于你的目的...它编译无论如何。
ryevplcw3#
您还可以参考以下内容:https://golangbyexample.com/struct-slice-field-go/