按引用返回的切片为空:
package main
import "fmt"
func GetItems(items *[]string) {
list := make([]string, 0)
list = append(list, "ok")
items = &list
}
func main() {
var items []string
GetItems(&items)
fmt.Print(len(items)) // expect 1 here, but got 0
}
如何通过引用从函数返回切片?
答案 0 :(得分:5)
通过分配到items
,您可以更改items
点的位置,而不是值items
指向的位置。要做后者,而不是items = &list
写*items = list
。