1.8 函数声明

这是一个很好的机会去介绍函数支持多值返回。查看下面3个函数:一个没有返回值,一个返回一个值,一个返回2个值。

  1. func log(message string) {
  2. }
  3. func add(a int, b int) int {
  4. }
  5. func power(name string) (int, bool) {
  6. }

我们常常这样使用最后一种函数:

  1. value, exists := power("goku")
  2. if exists == false {
  3. // 处理出错情况
  4. }

如果你只想获得返回值中的某个值,这种情况下,你可以将另外一个返回值赋给_:

  1. _, exists := power("goku")
  2. if exists == false {
  3. // 处理出错情况
  4. }

这不仅仅是一种约定。_是一个空白标识符,尤其在用在返回值时它没有真正的赋值。你可以一直使用_,无论返回值是什么类型。

最后,你可能遇到一些不同的函数声明方式,即如果函数的参数都是相同的类型,那么可以使用以下的简洁方式定义:

  1. func add(a, b int) int {
  2. }

你会常常遇见函数返回多个值。你也会经常使用_去丢弃一个值。具名返回值和不详细的参数声明并不常见。但是迟早你都会遇到,所以了解他们是很重要的。

链接