Anonyme Funktion für Golang-Funktion

王林
Freigeben: 2024-04-20 12:27:02
Original
711 Leute haben es durchsucht

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() {
    // 函数体
}
Nach dem Login kopieren

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

func(x int) int {
    return x * x
}
Nach dem Login kopieren

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)
}
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage