1 回答

TA貢獻1871條經驗 獲得超13個贊
您的第一個示例缺少復合文字的類型。
由于您使用了值,因此可以使用(在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將導致比它擁有的字符更多的字節。
- 1 回答
- 0 關注
- 166 瀏覽
添加回答
舉報