我想从原始字符串中替换第n个字符,我可以使用字符[i]从字符串中访问第n个字符,但是当我为chars [i]赋值时,它会给出错误.
package main import "fmt" func main() { var chars = "abcdef" fmt.Println(string(chars[3])) chars[3] = "z" // is not working,}
发生这种情况是因为字符实际上是一个字符串并且是不可变的.如果您正确地声明它(作为字节切片),那么您可以在尝试时将其分配给它.这是一个例子;
package main import "fmt" func main() { var chars = []byte{'a','b','c','d','e','f'} fmt.Println(string(chars[3])) fmt.Printf("%T\n",chars) chars[3] = 'z' fmt.Println(string(chars)) }
https://play.golang.org/p/N1sSsfIBQY
或者,您可以使用其他答案中所示的重新分析.