微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要GoLang函数声明说明

如何解决需要GoLang函数声明说明

我看过函数的声明和用法 https://gobyexample.com/functions

但是我有如下所示的golang代码

func (channel *AmqpChannel) FunctionName(message string) int {

...
}

我在任何地方都找不到上述语法的引用。

有人可以解释一下golang中的函数语法吗? 我主要得不到的是函数名称前的(channel * AmqpChannel)部分。

解决方法

这是method declaration,用于在FunctionName对象上定义的名为*AmqpChannel的方法。

(channel *AmqpChannel)使用指针接收器声明此方法,这意味着您应该在*AmqpChannel类型的对象上调用它。这与带有用(channel AmqpChannel)声明的值接收器的方法形成对比。

有关方法调用和指针与值接收器的详细信息,请参见calls section of the spec,包括何时编译器允许您在值类型上调用指针方法。

,

嗨,这种语法用于声明方法,基本上是一种附加到类型上的函数

例如,您创建类似

type Circle struct {
    Radius float64
}

现在,如果您想简单地做方法

func (c Circle) Area() float64 {
    return  PI * c.Radius * c.Radius
}

方法可以在有或没有引用的情况下声明

如果您使用

(c *圆圈)

它将通过圆圈作为对函数的引用

现在您可以像这样称呼

var c Circle
c.Radius = 4
fmt.Println(c.Area())

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。