„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich mithilfe benutzerdefinierter Flags in Golang mehrere Werte in einer Liste analysieren?

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

Veröffentlicht am 22.12.2024
Durchsuche:259

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

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

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

Playground

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

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3