猿问

动态二维矩阵

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


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)

}

它给我一个错误。基本上我需要的是让切片尽可能动态。我不知道任何两个维度的最终长度是多少。


扬帆大鱼
浏览 95回答 1
1回答

SMILET

编译器错误实际上是误导性的——它应该引用你正在使用的tmp...字符串的可变参数——而不是它引用的是可以用来附加到的tmp正确类型:[]stringcntmain.go:14:15:不能使用 tmp (type []string) 作为类型 [][]string in append无论如何,使用tmp...go是从tmp一个 []string 变成单独的字符串参数。有效地:cnt&nbsp;=&nbsp;append(cnt,&nbsp;tmp[0],&nbsp;tmp[1],&nbsp;tmp[2],&nbsp;tmp[3],&nbsp;tmp[4])而且 go 不能附加string到一个[][]string类型。将行更改为:cnt&nbsp;=&nbsp;append(cnt,&nbsp;tmp)
随时随地看视频慕课网APP

相关分类

Go
我要回答