为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建字节矩阵 Golang

如何创建字节矩阵 Golang

Go
慕容森 2022-06-06 17:45:18
我找不到如何在 Golang 中创建字节矩阵。test := {{"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"}}语法错误:意外 {,预期表达式语法错误:意外 { 在语句末尾或者我使用的第二种方式test := make([][]byte, 9);test = append(test, []byte{"5","3",".",".","7",".",".",".","."})test = append(test, []byte{"6",".",".","1","9","5",".",".","."})无法将“5”(无类型字符串类型)转换为字节类型
查看完整描述

1 回答

?
慕桂英4014372

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将导致比它拥有的字符更多的字节。


查看完整回答
反对 回复 2022-06-06
  • 1 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号