1.3 Go 多值返回有什么用? ========================= Go语言中函数可以返回多个值,这和其它编程语言有很大的不同。对于有其它语言编程经验的人来说,最大的障碍不是学习这个特性,而是很难想到去使用这个特性。 利用这个特性,在 Go 中实现变量的交换,就不需要再使用中间变量(表象上看是这样,但实际还是会变量的拷贝)了,非常的方便。 以下是使用示例 .. code:: go package main import "fmt" func swap(a int, b int) (int, int) { return b, a } func main() { a := 1 b := 2 a, b = swap(a, b) fmt.Println(a) // 2 fmt.Println(b) // 1 } 若返回的值,有的不需要,可以直接使用 占位符 ``_`` 接收,表示丢弃这个值。 .. code:: go a, _ = swap(a, b) 在 Go 中没有异常机制,当一个函数运行出错的时候,除了返回该功能函数的结果外,还应该返回一个 error 类型的值。 若该值为 nil 则表示,函数正常运行结束,反之,则函数运行异常。 这是 Golang 这门语言的设计哲学,因此我们不管在看别人的代码,亦或者自己写代码,都会发现代码中到处都有下面这段代码的身影。 .. code:: go if err != nil { // handle error }