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>&1sau schimbă ieșirea cuSetOutput.
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.