登录
首页 >  Golang >  Go问答

Golang - 在函数返回语句中使用多个返回值

来源:stackoverflow

时间:2024-02-09 18:00:27 494浏览 收藏

哈喽!今天心血来潮给大家带来了《Golang - 在函数返回语句中使用多个返回值》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

如果我在 go 中有一个“内部”/嵌套函数:

finddups := func(groups []string) (int, string) {
        dupcnt := 0
        dups := ""
        prevgroup := ""
        for _, group := range groups {
            if group == prevgroup {
                dupcnt++
                dups += group + ", "
            }
            prevgroup = group
        }
        return dupcnt, dups
    }

语言中是否有一种方法可以从“外部”/父函数的 return 语句调用此函数,例如:

return findDups(sourceGroups), findDups(targetGroups)

父函数的返回签名是(int, string, int, string)。编译器抱怨以下消息:

2 值 finddups(sourcegroups) (类型 (int, string) 的值),其中需要单个值

我可以通过仅使用两次调用内部函数的返回值创建四个变量并在 return 语句中使用它们来处理这个问题,但想知道是否有更直接的方法来做到这一点。我尝试过谷歌搜索,但似乎无法提出正确的问题。


正确答案


The spec is pretty clear on what your options are(强调我的):

  1. 一个或多个返回值可以在“return”语句中明确列出。
  2. “return”语句中的表达式列表可以是对多值函数的单次调用
  3. 如果函数的结果类型指定了其结果参数的名称,则表达式列表可能为空。

今天关于《Golang - 在函数返回语句中使用多个返回值》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>