动态二维矩阵

时间:2019-03-13 16:00:12

标签: go

我有这段代码,这给了我错误:

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

给我一​​个错误。基本上,我需要的是使切片尽可能地生动。我不知道这两个维度的最终长度是多少。

1 个答案:

答案 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)