我正在嘗試遍歷一段字符串并向每個(gè)字符串添加 10,例如:package mainimport "fmt"func addTen(ss *[]string) { for _, s := range *ss { s = fmt.Sprintf("%s10", s) }}func main() { ss := []string{"a", "b", "c"} addTen(&ss) fmt.Println(ss)}編譯器抱怨s未定義。
1 回答

MM們
TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
使用此代碼將“10”附加到每個(gè)切片元素:
package main
import "fmt"
func addTen(ss []string) {
for i, s := range ss {
ss[i] = fmt.Sprintf("%s10", s)
}
}
func main() {
ss := []string{"a", "b", "c"}
addTen(ss)
fmt.Println(ss)
}
關(guān)鍵點(diǎn):
將字符串分配給 slice 元素。代碼s = fmt.Sprintf("%s10", s)分配給局部變量s,該變量被丟棄。
此答案中的代碼傳遞切片值而不是傳遞指向切片的指針。在這種情況下沒有必要傳遞指針,傳遞指針也沒有性能優(yōu)勢(shì)。只傳遞值更簡(jiǎn)單。
- 1 回答
- 0 關(guān)注
- 158 瀏覽
添加回答
舉報(bào)
0/150
提交
取消