我有这段代码,这给了我错误:
package main
import (
"fmt"
)
func main() {
var cnt = make([][]string,0,10)
for i := 0; i < 5; i++ {
var tmp = make([]string,0,8)
for c := 0 ; c < 5 ; c++ {
tmp = append(tmp,"Matias")
}
cnt= append(cnt,tmp...)
}
fmt.Println(cnt)
}
给我一个错误。基本上,我需要的是使切片尽可能地生动。我不知道这两个维度的最终长度是多少。
答案 0 :(得分:3)
编译器错误实际上是令人误解的-它应该引用您使用tmp...
的各种字符串-而是引用tmp
的正确类型[]string
可以用来附加到cnt
:
main.go:14:15:不能在附件中将tmp(类型[] string)用作类型[] [] string
无论如何, go 使用tmp...
将tmp
从[]字符串转换为单独的字符串参数。有效:
cnt = append(cnt, tmp[0], tmp[1], tmp[2], tmp[3], tmp[4])
并且go不能将string
附加到[][]string
类型。
将行更改为:
cnt = append(cnt, tmp)