一尘不染

如何通过引用返回切片?

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
}

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


阅读 280

收藏
2020-07-02

共1个答案

一尘不染

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

2020-07-02