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行目は、無名関数を実行しています。
関連の記事