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

Wie analysiert man Listenwerte in Flags in Go?

Susan Sarandon
Freigeben: 2024-11-29 08:36:13
Original
977 Leute haben es durchsucht

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]
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

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