Go言語 関数のサンプル

Go言語の関数のサンプルです。

目次

サンプル 関数
  可変長引数がある関数
  無名関数

関数

  • 関数は処理をまとめることができます。使用するときは関数名を指定して呼び出します。
  • 引数は関数にデータを渡します。パラメータとも言います。
  • 引数は必須ではありません。
  • 呼び出し先の引数は、「仮引数」といいます。
  • 呼び出し元の引数は、「実引数」といいます。
  • returnは、関数の呼び出し元に値を返します。返す値を「返り値」または「戻り値」といいます。戻り値の型の指定が必要です。
  • returnは必須ではありません。

以下は、関数のサンプルです。

引数と戻り値がない場合

package main
import "fmt"

func test1() {
	fmt.Println("test1") //test1と表示される
}
func main() {
	test1()
}

8行目は、5行目の関数を呼んでいます。

引数と戻り値がある場合

package main
import "fmt"

func test1(num1 int, num2 int) int {
	num3 := num1 + num2
	return num3
}
func main() {
	ans1 := test1(2, 3)
	fmt.Println(ans1) // 5が表示される
}

9行目は、4行目の関数を引数付きで呼んでいます。
6行目は、戻り値を9行目の呼び出し元に返しています。

戻り値が複数の場合

package main
import "fmt"

func test1() (string, string, string) {
	str1 := "赤"
	str2 := "黄"
	str3 := "青"
	return str1, str2, str3
}
func main() {
	a, _, c := test1()
	fmt.Println(a) // 赤が表示される
	fmt.Println(c) // 青が表示される
}

8行目は、複数の値を返しています。
11行目は戻り値を取得しています。不要な戻り値はアンダスコア(_)を指定します。

 

可変長引数がある関数

可変長引数を使用する場合、呼び出し先の引数にピリオド(.)を3つ指定します。

package main
import "fmt"

func test1(str1 ...string) {
	for i := 0; i < len(str1); i++ {
		fmt.Println(str1[i])
	}
}
func main() {
	test1("あ")      // あ が表示される
	test1("い", "う") // い う が表示される
	test1()         // 出力なし
}

4行目は、可変長引数です。string型の後ろにピリオド「…」が3つ付けます。
12行目は、引数がありませんがエラーになりません。

通常の引数と可変長引数がある場合

package main
import "fmt"

func test1(i int, str1 ...string) {
	for i := 0; i < len(str1); i++ {
		fmt.Println(str1[i])
	}
}
func main() {
	test1(1, "あ")      // あ が表示される
	test1(2, "い", "う") // い う が表示される
	test1(3)           // 出力なし
}

4行目のように、可変長引数は最後に指定します。

無名関数

関数名がない関数です。

package main
import "fmt"

func main() {
	test1 := func(color string) {
		fmt.Println(color + "です")
	}
	test1("赤") // 赤ですと表示される
}

5行目は、関数名がありません。
8行目は、無名関数を実行しています。

関連の記事

Go言語 if文のサンプル
Go言語 for文 処理を繰り返す(break/continue)

△上に戻る