Heim >Backend-Entwicklung >Golang >Wie kann ich Funktionen anwenden, um Elemente in Go übersichtlich aufzulisten?

Wie kann ich Funktionen anwenden, um Elemente in Go übersichtlich aufzulisten?

DDD
DDDOriginal
2024-11-20 13:46:13524Durchsuche

How Can I Apply Functions to List Elements Concisely in Go?

Präzise Funktionsanwendung zum Auflisten von Elementen in Go

Python-Programmierer sind mit dem 便捷的Listenverständnis für die Anwendung von Funktionen auf Listenelemente vertraut. In Go wird jedoch normalerweise ein expliziterer schleifenbasierter Ansatz verwendet.

Hier ist ein Codeausschnitt, der den traditionellen Ansatz in Go demonstriert:

list := []int{1, 2, 3}
list2 := []int{}

for _, x := range list {
    list2 = append(list2, multiply(x, 2))
}

str := strings.Join(list2, ", ")

Gibt es eine prägnantere Möglichkeit? das in Go?

Einführung der generischen Kartenfunktion von Go 1.18

Mit der Veröffentlichung von Go 1.18 wurde eine generische Kartenfunktion eingeführt. Es ermöglicht die präzise Anwendung von Funktionen auf Listenelemente und die Generierung einer neuen Liste mit den transformierten Werten.

func Map[T, V any](ts []T, fn func(T) V) []V {
    result := make([]V, len(ts))
    for i, t := range ts {
        result[i] = fn(t)
    }
    return result
}

Verwendungsbeispiel

Die Map-Funktion kann kann wie folgt verwendet werden:

input := []int{4, 5, 3}
outputInts := Map(input, func(item int) int { return item + 1 })
outputStrings := Map(input, func(item int) string { return fmt.Sprintf("Item:%d", item) })

Fazit

Die generische Map-Funktion in Go 1.18 bietet eine prägnante und effiziente Möglichkeit, Funktionen auf Listenelemente anzuwenden und so ein neues zu erstellen Liste mit den transformierten Werten. Es vereinfacht den Code und verbessert die Lesbarkeit.

Das obige ist der detaillierte Inhalt vonWie kann ich Funktionen anwenden, um Elemente in Go übersichtlich aufzulisten?. 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