flag.PrintDefaults în Go

Afișează lista tuturor opțiunilor definite, cu tipul, descrierea și valoarea implicită.

Sintaxă
func PrintDefaults()

Ce face flag.PrintDefaults

flag.PrintDefaults scrie textul de ajutor pentru toate opțiunile, sortate alfabetic. Pentru fiecare: numele, tipul valorii (sau numele pus între backtick-uri în descriere), descrierea și, dacă nu este valoarea zero, (default ...).

Implicit scrie pe os.Stderr; poți schimba destinația cu flag.CommandLine.SetOutput(w). Este folosită de funcția implicită flag.Usage și o apelezi și tu când scrii un Usage propriu.

Ce returnează

Nimic.

Exemple

Exemplul 1: Ajutorul generat automat

Numele `fisier` din descriere înlocuiește tipul string în ajutor.

package main

import (
    "flag"
    "os"
    "time"
)

func main() {
    flag.CommandLine.SetOutput(os.Stdout) // implicit ar fi os.Stderr
    flag.String("iesire", "raport.csv", "scrie rezultatul în `fisier`")
    flag.Int("limita", 100, "numărul maxim de rânduri")
    flag.Bool("v", false, "afișează detalii")
    flag.Duration("timeout", 30*time.Second, "timpul maxim de așteptare")
    flag.Float64("tva", 0.19, "cota de TVA")
    flag.PrintDefaults()
}

Rezultat

  -iesire fisier
    	scrie rezultatul în fisier (default "raport.csv")
  -limita int
    	numărul maxim de rânduri (default 100)
  -timeout duration
    	timpul maxim de așteptare (default 30s)
  -tva float
    	cota de TVA (default 0.19)
  -v	afișează detalii

Greșeli frecvente

  • Te miri că ajutorul nu apare în rezultatul capturat al unei comenzi. Este scris pe stderr; redirecționează cu 2>&1 sau schimbă ieșirea cu SetOutput.

Comenzi înrudite

  • flag.Usage: Variabila care ține funcția de afișare a ajutorului; o înlocuiești ca să-ți scrii propriul mesaj de utilizare.
  • flag.String: Definește o opțiune text (-nume=valoare) și returnează un pointer la valoarea ei.
  • flag.NewFlagSet: Creează un set separat de opțiuni, util pentru subcomenzi (git commit, git push) și pentru teste.