gpt4 book ai didi

带*点和不带指针的Golang类型方法?

转载 作者:数据小太阳 更新时间:2023-10-29 03:36:14 29 4
gpt4 key购买 nike

<分区>

我刚接触 golang。只是想了解为 Calc 类型声明的两种方法之间的区别。第一个函数 sum 被声明为 (c *Calc) Sum,另一个没有 * 的函数被声明为 (c Calc) Minus。两者之间的区别和推荐的写法是什么?

我看到不同之处在于我们如何调用 main 下的函数。 point * 类型的方法需要new(Calc),另外一个可以直接调用Calc{}.Sum。

一些行为解释会有所帮助。

   func main() {

Calc{}.Minus(2, 2)
c :=new(Calc)
c.Sum(3, 2)
}


type Calc struct{
Result int
}

func (c *Calc) Sum(a int, b int) {
c.Result = a + b
}

func (c Calc) Minus(a int, b int) {
c.Result = a-b
}

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