Ce face flag.Int
flag.Int funcționează ca flag.String, dar valoarea este convertită în int. Sunt acceptate și formatele 0x1F (hexazecimal), 0o17 (octal) și 0b101 (binar), precum și separatorul _ (1_000).
Dacă valoarea dată nu este un număr valid, flag.Parse afișează eroarea și oprește programul. Pentru alte tipuri există flag.Int64, flag.Uint, flag.Uint64.
Parametri
| Parametru | Descriere |
|---|---|
name |
Numele opțiunii. |
value |
Valoarea implicită. |
usage |
Descrierea pentru ajutor. |
Ce returnează
Un *int.
Exemple
Exemplul 1: Numărul de rezultate și pagina
package main
import (
"flag"
"fmt"
"os"
)
func main() {
os.Args = []string{"cauta", "-limita", "5", "-pagina=3"}
limita := flag.Int("limita", 20, "câte rezultate pe pagină")
pagina := flag.Int("pagina", 1, "numărul paginii")
flag.Parse()
start := (*pagina - 1) * *limita
fmt.Printf("afișez rezultatele %d-%d\n", start+1, start+*limita)
}
Rezultat
afișez rezultatele 11-15
Exemplul 2: Valoare greșită (cu FlagSet, fără oprirea programului)
Un FlagSet cu ContinueOnError afișează eroarea și ajutorul, apoi returnează eroarea în loc să oprească programul. Atenție: variabila nu mai are valoarea implicită (20), ci 0; după o eroare nu te baza pe ea.
package main
import (
"flag"
"fmt"
"os"
)
func main() {
fs := flag.NewFlagSet("cauta", flag.ContinueOnError)
fs.SetOutput(os.Stdout)
limita := fs.Int("limita", 20, "câte rezultate pe pagină")
err := fs.Parse([]string{"-limita=multe"})
fmt.Println("eroare:", err)
fmt.Println("limita după eroare:", *limita)
}
Rezultat
invalid value "multe" for flag -limita: parse error
Usage of cauta:
-limita int
câte rezultate pe pagină (default 20)
eroare: invalid value "multe" for flag -limita: parse error
limita după eroare: 0
Greșeli frecvente
- Nu verifici intervalul:
-limita=-5este unintvalid. Validează valorile dupăParse.
Comenzi înrudite
flag.StringVar: Definesc opțiuni care scriu valoarea direct într-o variabilă existentă (text, întreg, boolean), fără pointer returnat.flag.Float64: Definește o opțiune număr cu zecimale (-tva=0.19) și returnează un pointer la valoarea ei.flag.String: Definește o opțiune text (-nume=valoare) și returnează un pointer la valoarea ei.flag.Parse: Citește opțiunile din linia de comandă (os.Args) și completează variabilele definite cu flag.String, flag.Int etc.