我正在尝试将字符串数组传递给函数,打印值,修改它,然后当函数完成字符串数组的打印值时。
这是我的示例代码,它不起作用,但展示了我想要实现的目标:
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)
答案 0 :(得分:2)
要修复错误,只需将let $z := update insert attribute x {$r/@x} $s (: Need to bring @x from <r> to <s> :)
更改为*a[:0]
以获取指针指向的对象,然后对该对象进行切片,而不是尝试切割指针。
接下来只是我的意见:
但是,您不需要参数(*a)[:0]
,切片包含指向底层数组的指针,因此切片的副本指向同一个数组。如果你要为slice变量指定另一个东西,我建议你返回新的切片,如下所示:
*