Go 言語関数変数 – 関数を変数の値として保存します

Go 言語関数変数 - 関数を変数の値として保存します

 
 
Go 言語では、関数も型であり、他の型と同様に変数に格納できます。次のコードは、関数変数 f を定義し、fire() という名前の関数を関数変数 f に割り当て、次のように呼び出します。関数変数 f が使用され、実際に fire() 関数が呼び出されます。コードは次のとおりです。

 

package main

import (
	"fmt"
)

func fire() {
	fmt.Println("fire")
}

func main() {

	var f func()

	f = fire

	f()
} 

コード出力結果:

fire

コードの説明:

  • 7 行目では fire() 関数を定義しています。
  • 13行目では変数fをfunc()型として宣言していますが、このときのfは通称「コールバック関数」と呼ばれており、このときのfの値はnilとなります。
  • 15 行目では、fire() 関数を値として関数変数 f に代入しており、f の値が fire() 関数です。
  • 17 行目では、関数変数 f を使用して関数呼び出しを行い、実際に fire() 関数を呼び出します。
 

「 Go 言語関数変数 – 関数を変数の値として保存します」についてわかりやすく解説!絶対に観るべきベスト2動画

一緒に学ぶGo言語入門 ~その2:パッケージ・変数・関数(前半)~
【Go言語 超入門コース】12.関数 |関数を料理ロボットに例えて説明しました【プログラミング初心者向け入門講座】