在Golang中将指针传递给字符串数组

时间:2017-09-05 21:41:43

标签: arrays go

我正在尝试将字符串数组传递给函数,打印值,修改它,然后当函数完成字符串数组的打印值时。

这是我的示例代码,它不起作用,但展示了我想要实现的目标:

package main
import (
    "fmt"
)
func SendData(a *[]string) {
    fmt.Println(*a)
    *a = *a[:0]
}
func main() {
    var s []string
    s = append(s, "dat","boi")
    SendData(&s)
    fmt.Println(s)
}

这是汇编时的错误:cannot slice a (type *[]string)

1 个答案:

答案 0 :(得分:2)

要修复错误,只需将let $z := update insert attribute x {$r/@x} $s (: Need to bring @x from <r> to <s> :) 更改为*a[:0]以获取指针指向的对象,然后对该对象进行切片,而不是尝试切割指针。

接下来只是我的意见:

但是,您不需要参数(*a)[:0],切片包含指向底层数组的指针,因此切片的副本指向同一个数组。如果你要为slice变量指定另一个东西,我建议你返回新的切片,如下所示:

*