遍历字符串切片,并向每个字符串添加10

时间:2018-12-24 19:32:54

标签: string go slice

我正在尝试遍历字符串的一部分,并为每个字符串添加10,例如:

package main

import "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 个答案:

答案 0 :(得分:2)

使用此代码将“ 10”附加到每个slice元素:

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,该变量被丢弃。
  • 此答案中的代码传递切片值,而不是传递指向切片的指针。在这种情况下,不必传递指针,传递指针也没有性能上的好处。传递值更简单。