Go

stan.xii@gmail.com

1 minute read

多返回值 (multiple-return-values) Go 内建多返回值 支持。这个特性在 Go 语言中经常被用到,例如用来同时返回一个函数的结果和错误信息。 这里我们通过多赋值 操作来使用这两个不同的返回值 如果你仅仅想返回值的一部分的话,你可以使用空白定义符 _。 允许可变长参数是 Go 函数的另一个好的特性;我们将在接下来进行学习。 go code. // Go 内建多返回值 支持。这个特性在 Go 语言中经常被用到, // 例如用来同时返回一个函数的结果和错误信息。 package main import "fmt" // (int, int) 在这个函数中标志着这个函数返回 2 个 int。 func vals() (int, int) { return 3, 7 } func main() { // 这里我们通过多赋值 操作来使用这两个不同的返回值。 a, b := vals() fmt.Println(a) fmt.Println(b) // 如果你仅仅想返回值的一部分的话,你可以使用空白定 // 义符 _。 _, c := vals() fmt.Println© } // todo: named return parameters // todo: naked returns

stan.xii@gmail.com

1 minute read

递归 (recursion) Go 支持 递归。这里是一个经典的阶乘示例。 face 函数在到达 face(0) 前一直调用自身 go code. // Go 支持 <a href="http://zh.wikipedia.org/wiki/%E9%80%92%E5%BD%92_(%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6)"><em>递归</em></a>。 // 这里是一个经典的阶乘示例。 package main import "fmt" // face 函数在到达 face(0) 前一直调用自身。 func fact(n int) int { if n == 0 { return 1 } return n * fact(n-1) } func main() { fmt.Println(fact(7)) }

stan.xii@gmail.com

1 minute read

变参函数 variadic-functions 可变参数函数。可以用任意数量的参数调用。例如,fmt.Println 是一个常见的变参函数。 这个函数使用任意数目的 int 作为参数。 变参函数使用常规的调用方式,除了参数比较特殊。 如果你的 slice 已经有了多个值,想把它们作为变参使用,你要这样调用 func(slice…)。 Go 函数的另一个关键的方面是闭包结构,这是接下来我们需要看看的。 go code. // 可变参数函数。可以用任意 // 数量的参数调用。例如,fmt.Println 是一个常见的变参函数。 package main import "fmt" // 这个函数使用任意数目的 int 作为参数。 func sum(nums …int) { fmt.Print(nums, " ") total := 0 for _, num := range nums { total += num } fmt.Println(total) } func main() { // 变参函数使用常规的调用方式,除了参数比较特殊。 sum(1, 2) sum(1, 2, 3) // 如果你的 slice 已经有了多个值,想把它们作为变参 // 使用,你要这样调用 `func(slice.