多值返回

Go语言支持函数方法的多值返回,也就说我们定义的函数方法可以返回多个值,比如标准库里的很多方法,都是返回两个值,第一个是函数需要返回的值,第二个是出错时返回的错误信息,这种的好处,我们的出错异常信息再也不用像Java一样使用一个Exception这么重的方式表示了,非常简洁。

  1. func main() {
  2. file, err := os.Open("/usr/bin")
  3. if err != nil {
  4. log.Fatal(err)
  5. return
  6. }
  7. fmt.Println(file)
  8. }

如果返回的值,我们不想使用,可以使用_进行忽略.

  1. file, _ := os.Open("/usr/bin")

多个值返回的定义也非常简单,看个例子。

  1. func add(a, b int) (int, error) {
  2. return a + b, nil
  3. }

函数方法声明定义的时候,采用逗号分割,因为时多个返回,还要用括号括起来。返回的值还是使用return 关键字,以逗号分割,和返回的声明的顺序一致。