Wie kann ich mithilfe benutzerdefinierter Flags in Golang mehrere Werte in einer Liste analysieren?

Linda Hamilton
Freigeben: 2024-11-16 07:08:03
Original
265 Leute haben es durchsucht

How can I parse multiple values into a list using custom flags in Golang?

Benutzerdefiniertes Flag für Listen in Golang

Das Flag-Paket von Golang ermöglicht eine einfache Argumentanalyse, unterstützt jedoch normalerweise grundlegende Typen wie String, Integer, oder boolesch. Dies kann beim Arbeiten mit Wertelisten als einschränkend erscheinen.

Golang ermöglicht die Erstellung benutzerdefinierter Flags durch Implementierung der flag.Value-Schnittstelle. Diese Schnittstelle erfordert die Implementierung von zwei Methoden: String() und Set(). Durch die Definition eines benutzerdefinierten Flags für Listen können Sie das Parsen mehrerer Werte aktivieren, die über Befehlszeilen-Flags übergeben werden.

Definieren eines benutzerdefinierten Listen-Flags

Betrachten Sie das folgende Beispiel :

package main

import "flag"
import "fmt"

type arrayFlags []string

// String() implements the flag.Value interface
func (i *arrayFlags) String() string {
    return fmt.Sprintf("%v", *i)
}

// Set() implements the flag.Value interface
func (i *arrayFlags) Set(value string) error {
    *i = append(*i, value)
    return nil
}

var myFlags arrayFlags

func main() {
    flag.Var(&myFlags, "list1", "Some description for this param.")
    flag.Parse()
    fmt.Println(myFlags)
}
Nach dem Login kopieren

Dies definiert einen benutzerdefinierten Flag-Typ namens arrayFlags, der mehrere Werte akzeptiert. Das Flag ist an den Flag-Namen „list1“ gebunden und kann mit flag.Parse() analysiert werden.

Verwendung

Um mehrere Werte mit diesem benutzerdefinierten Flag zu übergeben, Sie können das Programm wie folgt ausführen:

go run your_file.go --list1 value1 --list1 value2 --list1 value3
Nach dem Login kopieren

Dadurch wird die Variable myFlags mit den drei bereitgestellten Werten gefüllt: ["value1", „Wert2“, „Wert3“]. Sie können dann innerhalb Ihres Programms auf diese Werte zugreifen.

Playground

Ein Live-Beispiel finden Sie auf dem folgenden Playground: [Playground-Link]

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe benutzerdefinierter Flags in Golang mehrere Werte in einer Liste analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage