如果是字符串,是否有可能在结构字段中使用某些索引来更改字符?
我的意思是我可以使用字符串类型进行此类操作:
func main() {
v := "Helv"
v[3] = "p"
}
我如何对结构域做同样的事情?以下分配无效。
type ik struct {
a int
b string
}
func main() {
f := ik{1, "Pasis"}
fmt.Println(f.b)
f.b[2] = "r"
}
由于字符串在Go中是不可变的,因此您需要将另一个字符串重新分配给该变量。您可以通过以下切片技巧来实现此目标,
chars := "Helv"
// To replace the character in i'th index,
chars = chars[:i] + "p" + chars[i+1:]
所以,您的程序变成了,
type ik struct {
a int
b string
}
func main() {
chars := "Helv"
chars = chars[:3] + "p" + chars[4:]
fmt.Println(chars)
f := ik{1, "Pasis"}
fmt.Println(f.b)
f.b = f.b[:2] + "r" + f.b[3:]
fmt.Println(f.b)
}