Heim  >  Artikel  >  Backend-Entwicklung  >  Anonyme Funktion für Golang-Funktion

Anonyme Funktion für Golang-Funktion

王林
王林Original
2024-04-20 12:27:02682Durchsuche

Anonyme Funktionen der Go-Sprache können verwendet werden, um einmalige Funktionen oder Teile größerer Funktionen zu erstellen, ohne einen Funktionsnamen zu deklarieren. Seine Syntax ist func() { // Funktionskörper }, die Parameter akzeptiert und Ergebnisse zurückgibt. Zu den praktischen Beispielen gehören das Sortieren von Slices (Sortieren nach bestimmten Attributen über die Funktion sort.Slice und anonyme Funktionen) und das Filtern von Daten (Filtern ungerader Zahlen über die Filterfunktion und anonyme Funktionen).

Anonyme Funktion für Golang-Funktion

Anonyme Funktionen in der Go-Sprache

Anonyme Funktionen sind Funktionen in der Go-Sprache, die keinen Funktionsnamen deklarieren müssen. Sie werden häufig zur schnellen Erstellung einmaliger Funktionen oder als Teil einer größeren Funktion verwendet.

Syntax

func() {
    // 函数体
}

Anonyme Funktionen können Parameter akzeptieren und Ergebnisse zurückgeben, genau wie gewöhnliche Funktionen:

func(x int) int {
    return x * x
}

Praktische Beispiele

Slices sortieren

Wir können anonyme Funktionen in sort.Slice-Funktionen verwenden, um Slices basierend auf Sort zu sortieren nach spezifischen Attributen von Elementen:

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)
}

Daten filtern

Wir können auch anonyme Funktionen verwenden, um Daten zu filtern:

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
}

Das obige ist der detaillierte Inhalt vonAnonyme Funktion für Golang-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn