Heim  >  Artikel  >  Backend-Entwicklung  >  Wie analysiert man eine Werteliste als Flag in Golang?

Wie analysiert man eine Werteliste als Flag in Golang?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-16 16:18:03886Durchsuche

How to Parse a List of Values as a Flag in Golang?

Erhalten einer Werteliste als Flag in Golang

In Golang bietet das Standard-Flag-Paket die Möglichkeit, Flags über den Befehl zu analysieren Zeile, unterstützt jedoch von Natur aus nur primitive Typen wie Zeichenfolgen, Ganzzahlen und Boolesche Werte. Um eine Liste von Werten als Flag zu verarbeiten, kann man einen benutzerdefinierten Typ flag.Value implementieren und flag.Var() zum Binden verwenden.

Eine Beispielimplementierung ist unten verfügbar:

import (
    "flag"
    "fmt"
)

type arrayFlags []string

// String is a required implementation of the flag.Value interface
func (i *arrayFlags) String() string {
    return fmt.Sprintf("%v", *i)
}

// Set is another required implementation of 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 parameter.")
    flag.Parse()
}

Dieser benutzerdefinierte Flag-Typ kann dann verwendet werden, um mehrere Flag-Werte zu übergeben, wie zum Beispiel:

go run your_file.go --list1 value1 --list1 value2

Zusammenfassend lässt sich sagen, dass ein benutzerdefinierter Flag.Value-Typ implementiert und verwendet wird flag.Var() ermöglicht Golang Entwicklern, eine Liste von Werten als Flags zu analysieren, was eine größere Flexibilität bei der Handhabung von Befehlszeilenargumenten bietet.

Das obige ist der detaillierte Inhalt vonWie analysiert man eine Werteliste als Flag in Golang?. 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