我正在嘗試遍歷一段字符串并向每個字符串添加 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貢獻1886條經驗 獲得超2個贊
使用此代碼將“10”附加到每個切片元素:
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)
}
關鍵點:
將字符串分配給 slice 元素。代碼s = fmt.Sprintf("%s10", s)分配給局部變量s,該變量被丟棄。
此答案中的代碼傳遞切片值而不是傳遞指向切片的指針。在這種情況下沒有必要傳遞指針,傳遞指針也沒有性能優勢。只傳遞值更簡單。
- 1 回答
- 0 關注
- 147 瀏覽
添加回答
舉報
0/150
提交
取消