gpt4 book ai didi

go - 调用方法表达式时没有足够的参数

转载 作者:IT老高 更新时间:2023-10-28 13:09:09 24 4
gpt4 key购买 nike

在学习过程中我遇到了以下错误:

prog.go:18: not enough arguments in call to method expression JSONParser.Parse 

在我的测试程序中(https://play.golang.org/p/PW9SF4c9q8):

package main


type Schema struct {
}

type JSONParser struct {
}

func (jsonParser JSONParser) Parse(toParse []byte) ([]Schema, int) {
var schema []Schema
// whatever parsing logic
return schema, 0
}

func main() {
var in []byte
actual, err2 := JSONParser.Parse(in)
}

有人愿意帮我继续前进吗?

最佳答案

不幸的是,您的错误有点误导。问题在于它是一个实例方法,而您调用它时就好像它是包范围内的方法一样。

你需要这样的东西;

func main() {
var in []byte
jp := JSONParser{}
actual, err2 := jp.Parse(in)
}

我猜错误的措辞是这样的,因为接收器(函数名称左侧的括号中的东西)的处理方式与在后台传递给函数的任何其他参数一样。

如果你想这样调用你的方法,定义就是 func Parse(toParse []byte) ([]Schema, int) 并且如果它在一个名为 的包中JSONParser 那么这将是正确的语法。如果它是在与您的示例相同的包中定义的,您只需将其称为 Parse(in)

关于go - 调用方法表达式时没有足够的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38666404/

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