Arrays Can';t对二维数组的列进行切片“;无法将数独[0:9][0](类型[9]int)用作赋值中的[]int类型;
我正在用9x92D数组的切片制作一个简单的数独游戏。我还是和Golang开始,有一些C++经验。我一直收到错误消息“无法将数独[0:9][0](类型[9]int)用作赋值中的类型[]int” var row1[]int=Sudoku[0][0:9] 这一行正确地获取了2d数组第一行的值,并将它们放入了row1切片中,但是使用var col1[]int=Sudoku[0:9][0]会导致上面的错误消息。我能做什么?提前谢谢 比如说,Arrays Can';t对二维数组的列进行切片“;无法将数独[0:9][0](类型[9]int)用作赋值中的[]int类型;,arrays,go,slice,sudoku,Arrays,Go,Slice,Sudoku,我正在用9x92D数组的切片制作一个简单的数独游戏。我还是和Golang开始,有一些C++经验。我一直收到错误消息“无法将数独[0:9][0](类型[9]int)用作赋值中的类型[]int” var row1[]int=Sudoku[0][0:9] 这一行正确地获取了2d数组第一行的值,并将它们放入了row1切片中,但是使用var col1[]int=Sudoku[0:9][0]会导致上面的错误消息。我能做什么?提前谢谢 比如说, package main import "fmt" func
package main
import "fmt"
func main() {
var Sudoku [9][9]int
fmt.Println(Sudoku)
var row1 []int = Sudoku[0][0:9]
fmt.Println(row1)
var col1 []int = Sudoku[0:9][0]
fmt.Println(col1)
}
游乐场:
var col1[]int=Sudoku[0:9][0]
为您获取数组,而不是片。您可以声明为var col1[9]int=Sudoku[0:9][0]
(或者更好的声明为:col1:=Sudoku[0:9][0]
),或者如果您真的想要切片,则在获得col1后声明为:var col1Slice[]int=col1[:]
一般来说,如果你的数独结构是一个2D切片而不是2D数组,事情会简单得多,那么你只需要处理切片
所有这些的工作示例:
像[9]int这样的数组和像[]int这样的切片在Go中是不同的类型。去旅行吧。去旅行吧。我不明白的是有什么选择。我希望一个切片包含2d数组中一列的值。考虑到上述方法失败,我如何才能做到这一点。
10:6: cannot use Sudoku[0:9][0] (type [9]int) as type []int in assignment