2 Punkte von xguru 2025-03-26 | 1 Kommentare | Auf WhatsApp teilen
  • Ein Kommandozeilen-Argumentparser, der dem GNU-Standard folgt, wie bei ./test -vo out.png --size 256 input.txt
  • Bietet integrierte Hilfemeldungen mit -h und --help
  • Ordnet Argumente per Tag-Konfiguration Struct-Feldern zu
  • Unterstützt komplexe Feldtypen wie Arrays, Slices und Structs
  • Unterstützt verschachtelte Unterbefehle

GNU-Regeln für Kommandozeilenargumente

  • Einträge, die mit einem Bindestrich (-) beginnen, sind Optionen
  • Mehrere Optionen können kombiniert werden (-abc ist gleichbedeutend mit -a -b -c)
  • Lange Optionen beginnen mit zwei Bindestrichen (--) (--abc)
  • Optionsnamen dürfen nur alphanumerische Zeichen enthalten
  • Optionswerte können per Leerzeichen, Gleichheitszeichen (=) oder direkt angehängt gesetzt werden (-a1, -a=1, -a 1 sind alle gleich)
  • Optionen und Nicht-Optionswerte können gemischt werden
  • Optionen können in beliebiger Reihenfolge erscheinen.
  • -- kennzeichnet das Ende der Optionen; alle nachfolgenden Argumente werden als Nicht-Optionen behandelt
  • Ein einzelnes - bedeutet normalerweise Standardeingabe oder -ausgabe
  • Wenn dieselbe Option mehrfach angegeben wird, gilt der letzte Wert
  • Eine Option kann mehrere Werte haben (-a 1 2 3 wird als [1,2,3] verarbeitet)

Zusätzliche Funktionen

  • Optionszählung: -vvv setzt v = 3
  • Optionsanhäufung: -v 1 -v 2 setzt v = []int{1, 2}
  • Boolesche Optionen: --var aktiviert und --no-var deaktiviert
  • Optionen können komplexe Typen wie Structs, Slices und Maps sein
  • Optionen können Listen-/Wörterbuchwerte aus einer Quelle (z. B. SQL) beziehen

1 Kommentare

 
haung921209 2025-03-26

Ich habe bisher cobra verwendet, aber im Vergleich dazu bietet argp allerlei Optionen für Flags, haha.