package main
const code = [][]byte{
{'M', 'O', 'N', 'A', 'R'},
{'C', 'H', 'Y', 'B', 'D'},
{'E', 'F', 'G', 'I', 'K'},
{'L', 'P', 'Q', 'S', 'T'},
{'U', 'V', 'W', 'X', 'Z'},
}
const key = []byte = {"PLAYFAIR"}
// 上面两种都会报错
func main() {
b := code[0][0]
}
上面两种都会报错Const initializer '[][]byte{...}' is not a constant
在Go语言中,多维切片不适用于常量声明。只有基本类型和某些复合类型(如字符串和数组)可以用于常量声明。
如果想要将该代码片段声明为常量,可以使用字符串数组代替切片:
这样,可以将code声明为一个包级变量,并将其初始化为一个字符串数组。然后,可以使用RowCount和ColumnCount常量来表示行数和列数。