猿问

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 findDups(sourceGroups), findDups(targetGroups)

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


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


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


蝴蝶不菲
浏览 84回答 1
1回答

万千封印

该规范非常清楚您的选择是什么(强调我的):返回值或值可以显式地列在“return”语句中。“return”语句中的表达式列表可能是对多值函数的一次调用。如果函数的结果类型为其结果参数指定名称,则表达式列表可能为空。
随时随地看视频慕课网APP

相关分类

Go
我要回答