如何在 Golang 中从函数返回多个值?


在本教程中,我们将了解如何在 Golang 中使用算法和示例从函数返回多个值。像 Python 等其他编程语言一样,Golang 也支持从函数返回多个值。在第一个示例中,我们将向函数传递两个数字,并一起返回较小的数字,然后是较大的数字。在第二个示例中,我们传递两个数字并一次返回加法、减法、乘法和除法。

语法

Func functionName(arguments) (returnType1, returnType2, …) {

   // logic
   return returnTypeVariable1, returnTypeVariable2, …
}

解释

(returnType1, returnType2, …) - 在此代码行中,returnType1 和 returnType2 的位置可以填写我们返回值的数据类型。

return returnTypeValue1, returnTypeValue2, … - 在这里,我们返回各自数据类型的变量。

算法

  • 步骤 1 - 声明变量。

  • 步骤 2 - 初始化变量。

  • 步骤 3 - 调用返回多个值的函数。

  • 步骤 4 - 打印结果。

示例 1

在这个示例中,我们将调用一个函数,并将两个整数作为参数传递。此函数将首先返回较小的数字,然后是较大的数字。

package main
import (

   // fmt package provides the function to print anything
   "fmt"
)
func smallerNumber(number1, number2 int) (int, int) {
   if number1 < number2 {
      return number1, number2
   }
   return number2, number1
}
func main() {

   // declaring the variable
   var number1, number2 int
   
   // initializing the variable
   number1 = 10
   number2 = 21
   fmt.Println("Golang program to return the multiple values from the function in Golang.")
   
   // calling the recursive function
   smaller, bigger := smallerNumber(number1, number2)
   fmt.Println("The smaller number is", smaller)
   fmt.Println("The bigger number is", bigger)
}

输出

Golang program to return the multiple values from the function in Golang.
The smaller number is 10
The bigger number is 21

示例 2

在这个示例中,我们将编写一个函数,该函数将一次返回加法、减法、乘法和除法。这种方法将减少程序中函数调用的次数。

package main
import (

   // fmt package provides the function to print anything
   "fmt"
)
func addSubMulDiv(number1, number2 int) (int, int, int, int) {
   var addition, subtraction, multiplication, division int
   
   // adding two numbers
   addition = number1 + number2
   
   // subtracting two numbers
   subtraction = number1 - number2
   
   // multiplying two numbers
   multiplication = number1 * number2
   
   // dividing two numbers
   division = number1 / number2
   return addition, subtraction, multiplication, division
}
func main() {

   // declaring the variable
   var number1, number2 int
   
   // initializing the variable
   number1 = 100
   number2 = 20
   fmt.Println("Golang program to return the multiple values from the function in Golang.")
   
   // calling the recursive function
   addition, subtraction, multiplication, division := addSubMulDiv(number1, number2)
   fmt.Printf("The addition of %d and %d is %d.\n", number1, number2, addition)
   fmt.Printf("The subtraction of %d and %d is %d.\n", number1, number2, subtraction)
   fmt.Printf("The multiplication of %d and %d is %d.\n", number1, number2, multiplication)
   fmt.Printf("The division of %d and %d is %d.\n", number1, number2, division)
}

输出

Golang program to return the multiple values from the function in Golang.
The addition of 100 and 20 is 120.
The subtraction of 100 and 20 is 80.
The multiplication of 100 and 20 is 2000.
The division of 100 and 20 is 5.

结论

这就是在 Golang 中使用两个示例从函数返回多个值的方法。要了解有关 Golang 的更多信息,您可以浏览这些教程。

更新于: 2023年1月11日

2K+ 阅读量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告