我的功能有问题。我得到了一个
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
我读了那些帖子,但我无法弄清楚我错在哪里。看起来我宣布了一切。
答案 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文档,或者需要在延迟闭包中更改返回值。
除此之外,他们应该避免。