English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Go言語には、匿名関数と呼ばれる特別な関数があります。匿名関数は名前を持たない関数です。内联関数を作成するときに非常に便利です。Go言語では、匿名関数はクロージャを形成できます。匿名関数はまた、関数リテラル。
文法:
func(parameter_list) return_type { //コード //return_typeが提供されている場合、return文を使用する //return_typeが提供されていない場合、 //return文を使用する return }()
package main import "fmt" func main() { //匿名関数 func() fmt.Println("ようこそ! に oldtoolbag.com" }() }
出力:
ようこそ! に oldtoolbag.com
重要事項:
Go言語では、匿名関数を変数に割り当てることができます。関数を変数に割り当てるとき、変数の型は関数の型になります。変数を関数のように呼び出すことができます。以下の例を参照してください。
package main import "fmt" func main() { // 匿名関数を変数に割り当てる value := func() fmt.Println("ようこそ! に oldtoolbag.com" } value() }
出力:
ようこそ! に oldtoolbag.com
匿名関数で引数を渡すこともできます。
package main import "fmt" func main() { //匿名関数で引数を渡す func(ele string){ fmt.Println(ele) }("w3codebox" }
出力:
w3codebox
匿名関数を他の関数に引数として渡すこともできます。
package main import "fmt" //匿名関数を引数として渡す func GFG(i func(p, q string) string){ fmt.Println(i("Geeks", "for")) } func main() { value := func(p, q string) string{ return p + q + "Geeks" } GFG(value) }
出力:
w3codebox
他の関数から匿名関数を返すこともできます。
package main import "fmt" //匿名関数を返す func GFG() func(i, j string) string{ myf := func(i, j string)string{ return i + j + "w3codebox" } return myf } func main() { value := GFG() fmt.Println(value("ようこそ", "に")) }
出力:
ようこそ w に3codebox