gpt4 book ai didi

go - 在go中增加结构变量

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

我期待看到 3,这是怎么回事?

package main

import "fmt"

type Counter struct {
count int
}

func (self Counter) currentValue() int {
return self.count
}
func (self Counter) increment() {
self.count++
}

func main() {
counter := Counter{1}
counter.increment()
counter.increment()

fmt.Printf("current value %d", counter.currentValue())
}

http://play.golang.org/p/r3csfrD53A

最佳答案

您的方法接收者是一个结构值,这意味着接收者在调用时会获得该结构的副本,因此它会递增该副本,而您的原始数据不会更新。

要查看更新,请将您的方法放在结构指针上。

func (self *Counter) increment() {
self.count++
}

现在 self 是指向您的 counter 变量的指针,因此它会更新它的值。


http://play.golang.org/p/h5dJ3e5YBC

关于go - 在go中增加结构变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16610857/

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