按引用返回的切片为空:
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 }
如何通过引用从函数返回切片?
通过分配给items,您可以更改items指向的位置,而不是items指向的值。要做后者,而不是items = &listwrite *items = list。
items
items = &list
*items = list