Go error:最终函数参数必须有类型

时间:2015-03-18 11:27:17

标签: go

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

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

1 个答案:

答案 0 :(得分:10)

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

(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文档,或者需要在延迟闭包中更改返回值。
  除此之外,他们应该避免。