3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個贊
發(fā)生這種情況是因?yàn)閏hars它實(shí)際上是一個字符串并且是不可變的。如果您適當(dāng)?shù)芈暶魉ㄗ鳛樽止?jié)切片),那么您可以在嘗試時分配給它。這是一個例子;
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
或者,您可以使用重新切片,如另一個答案中所示。

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個贊
使用切片索引刪除索引處的字符,并在那里放置一個新字符。
package main
import "fmt"
func main() {
var chars = "abcdef"
fmt.Println(string(chars[3]))
chars = chars[:3] + "z" + chars[3+1:]
fmt.Println(string(chars[3]))
}
輸出:
d
z
[:3]選擇切片中從開始到索引 3 的所有內(nèi)容,并且 [3+1:] 選擇從索引 (3+1) 到切片結(jié)尾的所有內(nèi)容。將您想要的字符放在兩個語句之間并將它們?nèi)糠旁谝黄?,以獲得在特定索引處替換字符的效果。
如果要替換特定字符(即字母“b”的所有(或部分)實(shí)例),可以使用strings.Replace函數(shù)
- 3 回答
- 0 關(guān)注
- 462 瀏覽
添加回答
舉報