gpt4 book ai didi

go - slice 类型的创建方法

转载 作者:IT王子 更新时间:2023-10-29 02:28:36 26 4
gpt4 key购买 nike

我是 golang 的新手。我正在尝试向 slice 添加一个方法。该方法只是对 append 的包装,它不起作用。

package main

import (
"fmt"
)

type SliceStr []string

func (ss *SliceStr) Add(s string) {
ss = append(ss, s)
}

func main() {
var s SliceStr

s.Add("hello")
fmt.Println(s)
}

prog.go:10:12:追加的第一个参数必须是 slice;有 *SliceStr

最佳答案

您得到的是指向 SliceStr (*SliceStr) 的指针,而不是 SliceStr,因此不是 slice 类型。只是取消引用指针

func (ss *SliceStr) Add(s string) {
*ss = append(*ss, s)
}

而且效果很好。 *ss = ... 设置 ss 指向的值以及对 append 调用中的 *ssss 指向的值而不是指针传递给它。

关于go - slice 类型的创建方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52247757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com