Go 語言中返回多個值的函式


Go 是一種現代程式語言,它提供了廣泛的功能來開發高效可靠的軟體。其中一項功能就是能夠從函式中返回多個值。在本文中,我們將探討如何在 Go 中使用返回多個值的函式。

多值返回簡介

在 Go 中,函式可以返回多種不同型別的多個值。當您需要從函式中返回多個值時,此功能非常有用,例如同時返回計算結果和指示計算是否成功的錯誤值。

要定義返回多個值的函式,只需在函式簽名中用逗號分隔返回值的型別即可。例如,考慮以下函式,它接收兩個整數作為輸入,並返回它們的和與差 -

示例

package main

import "fmt"

func sumAndDiff(a, b int) (int, int) {
   return a+b, a-b
}

func main() {
   sum, diff := sumAndDiff(10, 5)
   fmt.Println("Sum:", sum, "Diff:", diff)
}

輸出

Sum: 15 Diff: 5

在此示例中,函式簽名指定函式返回兩個整數 (int, int)。

使用多值返回

要使用返回多個值的函式返回的值,可以使用 Go 中用於多重賦值的特殊語法。例如,要使用前面定義的 sumAndDiff() 函式,您可以執行以下操作 -

示例

package main

import "fmt"

func sumAndDiff(a, b int) (int, int) {
   return a+b, a-b
}

func main() {
   sum, diff := sumAndDiff(10, 5)
   fmt.Printf("Sum: %d, Diff: %d", sum, diff)
}

輸出

Sum: 15, Diff: 5

在此示例中,我們使用 sumAndDiff() 函式計算 10 和 5 的和與差。函式返回的值使用多重賦值的特殊語法分配給變數 sum 和 diff。然後,我們使用 fmt.Printf() 函式列印這些值。

返回命名值

除了返回多種不同型別的多個值之外,Go 還允許您從函式中返回命名值。當您需要返回一組具有共同含義的相關值時,命名值很有用。

要定義返回命名值的函式,只需在函式簽名中指定返回值的名稱即可。例如,考慮以下函式,它接收一個字串作為輸入,並返回其長度以及一個布林值,該布林值指示該字串是否為空 -

示例

package main

import "fmt"

func lenAndEmpty(s string) (length int, isEmpty bool) {
   length = len(s)
   isEmpty = length == 0
   return
}

func main() {
   str := "Hello World!"
   length, isEmpty := lenAndEmpty(str)
   fmt.Printf("Length: %d, Is Empty: %t\n", length, isEmpty)
}

輸出

Length: 12, Is Empty: false

在此示例中,我們在函式簽名中為返回值指定了名稱 length 和 isEmpty。然後,我們計算輸入字串的長度並檢查它是否為空,並將值分配給命名返回值。

使用命名值

要使用函式返回的命名值,只需呼叫該函式並按名稱訪問這些值即可。例如,要使用前面定義的 lenAndEmpty() 函式,您可以執行以下操作 -

示例

package main

import "fmt"

func lenAndEmpty(s string) (length int, isEmpty bool) {
   length = len(s)
   isEmpty = length == 0
   return
}

func main() {
   length, isEmpty := lenAndEmpty("hello")
   fmt.Printf("Length: %d, IsEmpty: %t", length, isEmpty)
}

輸出

Length: 5, IsEmpty: false

在此示例中,我們使用 lenAndEmpty() 函式計算字串“hello”的長度和空狀態。函式返回的值使用變數 length 和 isEmpty 按名稱訪問。然後,我們使用 fmt.Printf() 函式列印這些值。

結論

返回多個值的函式是 Go 的一項強大功能,可以幫助您編寫簡潔且表達力強的程式碼。藉助此功能,您可以從函式中返回多個值並在有意義的方式中使用它們。通過了解如何使用返回多個值的函式,您可以提高 Go 程式的效率和可靠性。

更新於: 2023年4月18日

瀏覽量 177 次

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告