Golang程序从函数中返回多个值

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

在本教程中,我们将通过一个算法和实例来了解如何从Golang的函数中返回多个值。像其他编程语言如python一样,Golang也支持从一个函数返回多个值。在第一个例子中,我们将在函数中传递两个数字,然后一起返回较小的和较大的数字。在第二个例子中,我们要传递两个数字,并一次性返回加减乘除。

语法

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

   // logic
   return returnTypeVariable1, returnTypeVariable2, …
}

解释

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

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的知识,你可以探索这些教程。