我想替换原始字符串中的第n个字符。我可以使用来从字符串中访问第n个字符chars[i],但是当我给赋值时chars[i],会出现错误。
chars[i]
package main import "fmt" func main() { var chars = "abcdef" fmt.Println(string(chars[3])) chars[3] = "z" // is not working }
之所以发生这种情况,chars是因为它实际上是一个字符串并且是不可变的。如果适当地声明了它(作为字节片),则可以在尝试时将其分配。这是一个例子。
chars
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
另外,您也可以按照其他答案中的说明使用切片。