Go の関数

Go の関数、複数の戻り値、可変長引数

関数

関数の定義には func、戻り値の指定には return を使用する。

package main

import "fmt"

func add(x int, y int) int {
	return x + y
}

func main() {
	fmt.Println(add(5, 3)) // => 8
}

実行結果:

8

複数の戻り値

関数は複数の値を返せる。戻り値の型は括弧でまとめる。

func addMinus(x int, y int) (int, int) {
	return x + y, x - y
}

func main() {
	add, min := addMinus(8, 5)
	fmt.Println(add, min)
}

実行結果:

13 3

不要な戻り値を無視するにはブランク識別子 _ を使用する。

_, y := funcA()

可変長引数

可変長引数を定義するには ... を使用する。

package main

import "fmt"

func funcA(a int, b ...int) {
	fmt.Printf("a=%d\n", a)
	for i, num := range b {
		fmt.Printf("b[%d]=%d\n", i, num)
	}
}

func main() {
	funcA(1, 2, 3, 4, 5)
}

実行結果:

a=1
b[0]=2
b[1]=3
b[2]=4
b[3]=5