慕桂英4014372
您的第一个示例缺少复合文字的类型。由于您使用了值,因此可以使用(在Go Playgroundstring上尝试):test := [][]string{ {"6", ".", ".", "1", "9", "5", ".", ".", "."}, {".", "9", "8", ".", ".", ".", ".", "6", "."}, {"8", ".", ".", ".", "6", ".", ".", ".", "3"}, {"4", ".", ".", "8", ".", "3", ".", ".", "1"}, {"7", ".", ".", ".", "2", ".", ".", ".", "6"}, {".", "6", ".", ".", ".", ".", "2", "8", "."}, {".", ".", ".", "4", "1", "9", ".", ".", "5"}, {".", ".", ".", ".", "8", ".", ".", "7", "9"},}如果您想要一个“字节矩阵”,请使用可以分配给byte类型变量的常量文字,例如符文文字(在Go Playground上尝试):test := [][]byte{ {'6', '.', '.', '1', '9', '5', '.', '.', '.'}, {'.', '9', '8', '.', '.', '.', '.', '6', '.'}, {'8', '.', '.', '.', '6', '.', '.', '.', '3'}, {'4', '.', '.', '8', '.', '3', '.', '.', '1'}, {'7', '.', '.', '.', '2', '.', '.', '.', '6'}, {'.', '6', '.', '.', '.', '.', '2', '8', '.'}, {'.', '.', '.', '4', '1', '9', '.', '.', '5'}, {'.', '.', '.', '.', '8', '.', '.', '7', '9'},}如果将行枚举为字符串,并使用[]byte() 转换将行转换为(在Go Playground[]byte上尝试),则可以实现相同的目的:test := [][]byte{ []byte("6..195..."), []byte(".98....6."), []byte("8...6...3"), []byte("4..8.3..1"), []byte("7...2...6"), []byte(".6....28."), []byte("...419..5"), []byte("....8..79"),}最后一个版本可能更令人赏心悦目并且更容易修改,但请注意,它仅在您在行中使用 ASCII 字符时才有效,因为高于 127 的字符在 UTF-8 编码中具有多字节(这就是 Go 存储字符串的方式在内存中),因此将其转换string为[]byte将导致比它拥有的字符更多的字节。