我有一个整数矩阵,用多元数组表示。我试图将数字连接成一个字符串表示,按行列排列。我的天真方法是遍历矩阵中的所有条目并将它们附加到一个空字符串中。
然而,我得到了一个错误,我的附加函数说:
然而,我得到了一个错误,我的附加函数说:
./main.go:xx:yy: first argument to append must be slice; have string
我的代码如下:
type MatString string
type IntMat [3][3]Int // external constraints require fixed size, symmetric.
func Matrix2String(t IntMat) MatString {
// s var string
s := ""
for i := range t {
for j := range t[i] {
s = append(s[:], fmt.Sprintf("%s", j))
// fmt.Sprintf(s)
}
}
return MatString(s)
}
我对数组、切片和连接的理解有什么误解,如何逐步构建正确的字符串?
s+=fmt.Sprintf(....
来重新创建字符串。关于字符串和切片的注释。在技术上,string
就是[]byte
,但它是一个特定的 不可变 结构。因此,你不能像你试图做的那样使用append
。 - RayfenWindspear