Heim >Backend-Entwicklung >Golang >Wie analysiert man Listenwerte in Flags in Go?

Wie analysiert man Listenwerte in Flags in Go?

Susan Sarandon
Susan SarandonOriginal
2024-11-29 08:36:131051Durchsuche

How to Parse List Values into Flags in Go?

Listenwerte in Flags in Go analysieren

In Go ist das Flag-Paket das Äquivalent von Pythons argparse. Während die integrierten Flag-Typen nur Zeichenfolgen, ganze Zahlen und boolesche Werte unterstützen, ist es möglich, benutzerdefinierte Flag-Typen zu definieren, um Listen mit Werten aufzunehmen.

Benutzerdefinierter Flag-Typ für Listen

Um einen benutzerdefinierten Flag-Typ für Listenwerte zu definieren, implementieren Sie die Schnittstelle flag.Value in einem neuen Typ, z. B. arrayFlags. Die String()-Methode stellt eine Zeichenfolgendarstellung der Liste bereit und die Set()-Methode aktualisiert die Liste mit neuen Werten.

Binden des benutzerdefinierten Flags

Sobald Sie Wenn Sie den benutzerdefinierten Flag-Typ definiert haben, können Sie ihn mit flag.Var() an ein Flag binden. Dadurch können Sie zur Laufzeit mehrere Werte für dieses Flag übergeben.

Beispielverwendung

Hier ist ein Beispiel für die Verwendung eines benutzerdefinierten Flagtyps für Listen:

package main

import (
    "flag"
    "fmt"
)

type arrayFlags []string

func (i *arrayFlags) String() string {
    return fmt.Sprintf("%v", *i)
}

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) // Prints [value1 value2]
}

Wenn Sie diesen Code mit dem folgenden Befehl ausführen, werden die Listenwerte in die myFlags analysiert Variable:

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

Das obige ist der detaillierte Inhalt vonWie analysiert man Listenwerte in Flags in Go?. 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