【问题标题】:Go error: Final function parameter must have typeGo 错误:最终函数参数必须具有类型
【发布时间】:2015-05-21 03:55:39
【问题描述】:

我的功能有问题。我得到了一个

final function parameter must have type

对于这个方法

func (s *BallotaApi) PostUser(c endpoints.Context,userReq Users) (userRes Users, error) {

    c.Debugf("in the PostUser method")

    user := userManger.login(userReq)//return a Users Type 

    return user, nil

我阅读了这些帖子,但我不知道我错在哪里。看起来我宣布了一切。

can-you-declare-multiple-variables-at-once-in-go

go-function-declaration-syntax

【问题讨论】:

    标签: go


    【解决方案1】:

    如果要命名返回参数,则必须命名所有

    (userRes Users, err error)
    

    这样return statements就可以申请了。

    Function type中提到的:

    在参数或结果列表中,名称 (IdentifierList) 必须全部存在或全部不存在

    如果您尝试命名其中一个而不是另一个,例如in this example,您将得到:

    func a() (b int, error) {
        return 0, nil
    }
    # command-line-arguments
    /tmp/sandbox170113103/main.go:9: final function parameter must have type
    

    Dave C 提醒我们:

    Named returns 通常应仅限于帮助制作更好/更清晰的 godoc 文档,或者当您需要在延迟闭包中更改返回值时。
    除此之外,应该避免它们。

    【讨论】:

    • Named returns 通常应该仅限于帮助制作更好/更清晰的 godoc 文档,或者当您需要在延迟闭包中更改返回值时。除此之外,应该避免它们。
    • @DaveC 我同意。我已将您的评论包含在答案中以提高知名度。
    猜你喜欢
    • 2023-03-24
    • 2015-01-07
    • 2013-05-08
    • 2012-04-06
    • 1970-01-01
    • 2023-01-10
    • 2021-06-18
    相关资源
    最近更新 更多