我希望能够创建一个包含数组的结构体的复合文字。在结构体外部。
package main
import "fmt"
func main() {
x := [...][]string {{"a", "b"}}
fmt.Printf("%s", x)
}
这段代码可以正常工作。 (http://play.golang.org/p/C2RbNnd7LL)
但是我不能在结构体中定义一个类型为[...][]string的字段,就像 http://play.golang.org/p/wHNeeuAJuO 中所示。
package main
import "fmt"
type t struct {
f [...][]string
}
func main() {
x := [...][]string {{"a", "b"}}
y := t{x}
fmt.Printf("%s", y)
}
f出现错误,使用了[...]数组,但没有在数组字面量中使用
...
。没有字面量,没有计数,没有...
,只需声明数组大小或使用切片。请查看http://blog.golang.org/slices。并且请注意:不要将切片称为数组,反之亦然(因为每次有人这样做,一只小猫就会死)。这只是一个语法错误,加上对Go数组和切片的误解。你完成了Go之旅吗? - Volker