gpt4 book ai didi

go - 为什么 ast.CallExpr 不是有效的 ast.Expr?

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

我正在编写一些 Go AST 代码,而编译器在这一行上令人窒息:

var call ast.Expr = ast.CallExpr{Fun: ast.NewIdent("foo"), Args: []ast.Expr{ast.NewIdent("api")}}

它给我的错误是:

cannot use ast.CallExpr literal (type ast.CallExpr) as type ast.Expr in assignment:

ast.CallExpr does not implement ast.Expr (End method has pointer receiver)

我不知道这是在说什么; according to the documentation ,一切看起来都很好。我必须做什么才能使这项工作正常进行?

最佳答案

ast.ExprPosEnd方法由*ast.CallExpr实现。您需要使用 & 分配一个指向 call 的指针。

var call ast.Expr = &ast.CallExpr{Fun: ast.NewIdent("foo"), Args: []ast.Expr{ast.NewIdent("api")}}

关于go - 为什么 ast.CallExpr 不是有效的 ast.Expr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46895496/

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