匿名関数とクロージャ: 匿名関数は、特定のタスクを実行するためにオンザフライで作成される名前のない関数です。クロージャは、匿名関数内の外部変数へのアクセスを可能にする変数です。 Go では、func() 構文を使用して宣言されます。匿名関数とクロージャは、引数の受け渡し、変数への格納、または実際にはスライスの順序付けやイベント処理に使用できます。
#Go の匿名関数とクロージャ
はじめに
匿名関数は関数ですGo では、明示的に名前が付けられておらず、式として使用できるものは、1 回限りのタスクまたはコールバックを作成するために使用されます。クロージャは、関数が戻った後も存続する外部変数への参照を含む匿名関数です。匿名関数
匿名関数を宣言するには、func() 構文を使用します。
func() { fmt.Println("这是一个匿名函数") }
func callAnon(anon func()) { anon() } var anonFunc = func() { fmt.Println("这是一个存储在变量中的匿名函数") }
クロージャ
クロージャを使用すると、匿名関数が外部スコープ内の変数にアクセスできるようになります。これらの変数はクロージャ変数と呼ばれます。var x = 10 anon := func() { fmt.Println(x) // 访问闭包变量 } anon() // 输出:10
実際的なケース
type Employee struct { Name string Age int } func SortEmployeesByAge(employees []Employee) { sort.Slice(employees, func(i, j int) bool { return employees[i].Age < employees[j].Age }) }
type Button struct { onClick func() } func (b *Button) AddClickListener(f func()) { b.onClick = f }
オープン ソース プロジェクトとリソース
#[Go wiki: 匿名関数とクロージャ](https://go.dev/blog/closures)以上がオープンソース プロジェクトと、golang の匿名関数とクロージャのリソース共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。