0%

Go语言多返回值属性

一个函数的函数名即是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据返回给调用函数,即递归调用,所以一般把函数名变量称为返回值,函数的返回值类型是在定义函数时指定的。

一、概念

      Go一个非常特别的特性(对于编译语言而言)是函数和方法可以返回多个值(Python和Perl同样也可以)。这可以用于改进一大堆在C程序中糟糕的惯例用法:修改参数的方式,返回一个错误(例如遇到EOF则返回-1)。Go函数的返回值或者结果参数可以指定一个名字(名字不是强制的,但是它们可以使得代码更加健壮和清晰),并且像原始的变量那样使用,就像输入参数那样。如果对其命名,在函数开始时,它们会用其类型的零值初始化。如果函数在不加参数的情况下执行了return语句,结果参数会返回。用这个特性,允许(再一次的)用较少的代码做更多的事。

二、使用

  1. 普通例子

    • 代码(test.go)
1
2
3
4
5
6
7
8
9
10
11
12
13
package main

import "fmt"

func multiReturn() (a int, b int, c int) {
a, b, c = 111, 222, 333
return
}

func main() {
a, b, c := multiReturn()
fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)
}
  • 运行
    • 方式一:go run test.go
    • 方式二:go build test.go && ./test
    • 方式三:在线运行
  1. 错误处理

三、参考

  1. 参考一