如何通过引用返回切片?

时间:2015-03-28 16:54:05

标签: go

按引用返回的切片为空:

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
}

如何通过引用从函数返回切片?

1 个答案:

答案 0 :(得分:5)

通过分配到items,您可以更改items点的位置,而不是值items指向的位置。要做后者,而不是items = &list*items = list