■ はじめに
https://dk521123.hatenablog.com/entry/2020/04/12/145237
https://dk521123.hatenablog.com/entry/2020/04/03/000000
https://dk521123.hatenablog.com/entry/2020/04/05/000000
の続き。 今回は、「関数」を扱う。 なお、実行環境は、以下のサイトで気軽にできる。
目次
【1】関数 【2】可変長引数 【3】クロージャ(無名関数) 【4】使用上の注意 1)デフォルト引数 【5】サンプル 例1:Hello world 例2:クロージャ
【1】関数
構文
// C, Javaとは違い、戻り値複数可能(Pythonと同じでできる) func 関数名 (引数 型, ...) 戻り値の型,... { return ... }
【2】可変長引数
構文
// 「...」で可変長引数(その他のプログラムと同じ) func 関数名 (引数 ...型) 戻り値の型 {
【3】クロージャ(無名関数)
func 関数名 func() クロージャの型 {
【4】使用上の注意
1)デフォルト引数
* ないらしいが、構造体で代用するみたい
https://stackoverflow.com/questions/2032149/optional-parameters-in-go/13603885#13603885
【5】サンプル
例1:Hello world
package main func sayHello(name string) string { return "Hello, " + name } func main() { println(sayHello("Mike")) println(sayHello("Tom")) }
出力結果
Hello, Mike Hello, Tom
例2:クロージャ
package main func sum(value int) func(int) int { total := value return func(value int) int { total = total + value return total } } func main() { x := sum(1) println(x(2)) println(x(3)) }
出力結果
3 6
参考文献
https://qiita.com/gorilla0513/items/7e734c4e0680b5ea341d
https://golang.hateblo.jp/entry/golang-function
関連記事
Golang ~ 環境設定編 ~
https://dk521123.hatenablog.com/entry/2020/04/03/000000
Golang ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/04/12/145237
Golang ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/04/05/000000
Golang ~ 基本編 / ポインタ/アドレス ~
https://dk521123.hatenablog.com/entry/2021/05/02/000000