Go 未保存结构变量
我不确定为什么我的arraylist不能按预期工作 这是我的数组列表Go 未保存结构变量,go,Go,我不确定为什么我的arraylist不能按预期工作 这是我的数组列表 func main() { a := NewArrayList() fmt.Println(a.AddAtIndex(0, "Brian")) fmt.Println("Outisde ArrayList: Size is ", a.GetSize()) } 我希望在索引0处添加Brian后,大小将从0更新为1。 然而,输出显示 Inside ArrayList
func main() {
a := NewArrayList()
fmt.Println(a.AddAtIndex(0, "Brian"))
fmt.Println("Outisde ArrayList: Size is ", a.GetSize())
}
我希望在索引0处添加Brian后,大小将从0更新为1。
然而,输出显示
Inside ArrayList: Size is 1
true <nil>
Outisde ArrayList: Size is 0
为什么没有更新我的大小?似乎是通过值传递ArrayList实例,这就是为什么它在AddAtIndex方法内部更新,而不是在外部更新。
尝试将AddAtIndex方法签名更新为以下内容,以便它接受对ArrayList实例的引用,注意使用*符号:
func (a *ArrayList) AddAtIndex(index int, data string) (bool, error) {...}
因为您通过值而不是引用传递ArrayList。您需要func a*ArrayListadDataIndex。。。{ ...}. 我确信这一定是一个重复的问题。另外,我注意到您测试&data==nil。这永远不会是真的。使用一个,看看这个例子哇,非常感谢你的答案!StackOverflow上的人非常乐于助人。我将进一步研究指针:
func (a *ArrayList) AddAtIndex(index int, data string) (bool, error) {...}