如何在方法内修改类型切片?我试过 http://play.golang.org/p/ul2n8mk6yetype Test []stringfunc (test Test) Add(str string) { test = append(test, str)}func main() { test := Test{} test.Add("value") fmt.Println(len(test))//0}和http://play.golang.org/p/nV9IO7E5sptype Test []stringfunc (test *Test) Add(str string) { v := append(*test, str) test = &v}func main() { test := Test{} test.Add("value") fmt.Println(len(test))//0}但它不起作用。
1 回答
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
您需要使用指针接收器,您已在第二个示例中尝试过该接收器,但是您随后覆盖了无法达到目的的指针值。
你可以用
func (test *Test) Add(str string) {
v := append(*test, str)
*test = v
}
或者更清楚:
func (test *Test) Add(str string) {
*test = append(*test, str)
}
- 1 回答
- 0 关注
- 170 浏览
添加回答
举报
0/150
提交
取消