Go 言語の匿名関数を使用すると、関数名を宣言せずに 1 回限りの関数またはより大きな関数の一部を作成できます。その構文は func() { // function body } で、パラメータを受け取り、結果を返します。実際の例には、スライスの並べ替え (sort.Slice 関数と匿名関数を使用した特定の属性による並べ替え) やデータのフィルター処理 (filter 関数と匿名関数を使用した奇数のフィルター) が含まれます。
#Go 言語の匿名関数
匿名関数は、関数名を宣言する必要のない Go 言語の関数です。これらは、1 回限りの関数をすばやく作成するために、またはより大きな関数の一部としてよく使用されます。構文
func() { // 函数体 }
func(x int) int { return x * x }
実践的なケース
ソートスライス
sort.Slice関数で匿名関数を使用して、スライス要素の特定のプロパティに基づいて並べ替えることができます:
package main import ( "fmt" "sort" ) type Person struct { Name string Age int } func main() { people := []Person{ {"John", 25}, {"Mary", 30}, {"Bob", 20}, } // 根据 age 排序 sort.Slice(people, func(i, j int) bool { return people[i].Age < people[j].Age }) fmt.Println(people) }
データのフィルタリング
匿名関数を使用してデータをフィルタリングすることもできます:package main import "fmt" func main() { nums := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} // 过滤奇数 oddNums := filter(nums, func(x int) bool { return x % 2 != 0 }) fmt.Println(oddNums) } func filter(arr []int, f func(int) bool) []int { result := []int{} for _, v := range arr { if f(v) { result = append(result, v) } } return result }
以上がgolang関数の匿名関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。