我正在尝试遍历一段字符串并向每个字符串添加 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 关注
- 103 浏览
添加回答
举报
0/150
提交
取消