[英]Golang - using function with multiple return values in a return statement
如果我在 Go 中有一個“內部”/嵌套的 function:
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
}
有沒有一種語言可以讓我從“外部”/父函數的返回語句中調用這個 function,例如:
return findDups(sourceGroups), findDups(targetGroups)
父函數的返回簽名是 (int, string, int, string)。 編譯器抱怨消息:
2 值 findDups(sourceGroups)(類型為(int,字符串)的值),其中需要單個值
我可以通過使用對內部 function 的兩次調用的返回值創建四個變量並在 return 語句中使用它們來處理這個問題,但我想知道是否有更直接的方法來做到這一點。 我試過谷歌搜索但似乎無法形成正確的問題。
規范非常清楚你的選擇是什么(強調我的):
- 一個或多個返回值可以在“return”語句中明確列出。
- “返回”語句中的表達式列表可能是對多值 function的單次調用。
- 如果函數的結果類型為其結果參數指定名稱,則表達式列表可能為空。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.