gpt4 book ai didi

go - 为什么指定方法接收器有时会触发 'undefined' 错误?

转载 作者:IT王子 更新时间:2023-10-29 02:34:49 25 4
gpt4 key购买 nike

我以为我了解 Go 的类和方法接收器,但显然不是。它们通常凭直觉工作,但这里有一个使用它们似乎会导致“undefined: Wtf”错误的示例:

package main

type Writeable struct {
seq int
}

func (w Writeable) Wtf() { // causes a compile error
//func Wtf() { // if you use this instead, it works
}

func Write() {
Wtf() // this is the line that the compiler complains about
}

func main() {
}

我正在使用上个月左右从 golang 下载的编译器和 LiteIDE。请解释!

最佳答案

您将 Wtf() 定义为 Writeable 的一种方法。然后你试图在没有结构实例的情况下使用它。我更改了下面的代码以创建一个结构,然后使用 Wtf() 作为该结构的方法。现在它编译了。 http://play.golang.org/p/cDIDANewar

package main

type Writeable struct {
seq int
}

func (w Writeable) Wtf() { // causes a compile error
//func Wtf() { // if you use this instead, it works
}

func Write() {
w := Writeable{}
w.Wtf() // this is the line that the compiler complains about
}

func main() {
}

关于go - 为什么指定方法接收器有时会触发 'undefined' 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13534603/

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