publish variadic functions. also, spelling

This commit is contained in:
Mark McGranaghan 2012-10-17 18:41:49 -07:00
parent 855fde241c
commit 22f6542915
7 changed files with 44 additions and 39 deletions

View File

@ -11,7 +11,7 @@ Maps
Range
Functions
Multiple Return Values
# Varadic Functions
Variadic Functions
Closures
Recursion
# Defer

View File

@ -3,5 +3,5 @@ $ go run multiple-return-values.go
7
7
# Another key aspect of functions in Go is their ability
# to form closures, which we'll look at next.
# Accepting a variable number of arguments is another nice
# feature of Go functions; we'll look at this next.

View File

@ -25,7 +25,7 @@ func main() {
fmt.Println(getRep)
fmt.Println(getStr)
// varadic calls
// variadic calls
client.Set("foo1", "bar1")
client.Set("foo2", "bar2")
client.Set("foo3", "bar3")

View File

@ -1,31 +0,0 @@
// Varadic functions can be called with any number of
// trailing arguments. This is useful if you don't know
// number of arguments that will be needed for a function
// ahead of time.
package main
import "fmt"
// Varadic args are declared with `...type` and
// passed in as a slice.
func add(nums ...int) int {
fmt.Print(nums, " ")
total := 0
for _, num := range nums {
total += num
}
return total
}
func main() {
// Varadic functions can be called in the usual way.
fmt.Println(add(1, 2))
fmt.Println(add(1, 2, 3))
// If you already have multiple args in a slice,
// apply them to a varadic function using `
// func(slice...)`.
nums := []int{1, 2, 3, 4}
fmt.Println(add(nums...))
}

View File

@ -1,4 +0,0 @@
$ go run varadic-functions.go
[1 2] 3
[1 2 3] 6
[1 2 3 4] 10

View File

@ -0,0 +1,33 @@
// [_Variadic functions_](http://en.wikipedia.org/wiki/Variadic_function)
// can be called with any number of trailing arguments.
// For example, `fmt.Println` is a common variadic
// function.
package main
import "fmt"
// Here's a function that will take an arbitrary number
// of `ints` as arguments.
func sum(nums ...int) int {
fmt.Print(nums, " ")
total := 0
for _, num := range nums {
total += num
}
return total
}
func main() {
// Variadic functions can be called in the usual way
// with individual arguments.
fmt.Println(sum(1, 2))
fmt.Println(sum(1, 2, 3))
// If you already have multiple args in a slice,
// apply them to a variadic function using
// `func(slice...)` like this.
nums := []int{1, 2, 3, 4}
fmt.Println(sum(nums...))
}

View File

@ -0,0 +1,7 @@
$ go run variadic-functions.go
[1 2] 3
[1 2 3] 6
[1 2 3 4] 10
# Another key aspect of functions in Go is their ability
# to form closures, which we'll look at next.