Golang Flag

Golang Flag
Kommandolinjeflagg er en viktig del når du bygger kommandolinjeapplikasjoner. De lar oss endre oppførselen til et program. For eksempel lar LS -kommandoen i UNIX oss passere flagg, for eksempel -l eller -a for å endre standardutgangen.

Denne artikkelen vil guide deg til å opprette, bruke og analysere kommandolinjeflagg ved hjelp av flaggpakken fra Go Standard Library.

Påkrevd import

For å bruke og lage flagg ved hjelp av flaggpakken, må vi importere dem. Vi kan gjøre dette ved å bruke importklausulen, som vist nedenfor:

Importer "Flagg"

Når vi er importert, kan vi fortsette å bruke den.

Golang Flag -erklæring

Flaggpakken gjør det mulig å utføre flaggdeklarasjonen for streng, heltall og boolske typer. Denne funksjonaliteten er gitt av flagget.Streng (), flagg.Int (), og flagg.Henholdsvis bool () metoder.

La oss undersøke hver metode nøye for å forstå bedre hvordan vi bruker dem.

Flagg.Streng ()

Strengmetoden i flaggpakken lar deg definere et strengflagg med det spesifiserte navnet. Funksjonssyntaksen er som vist:

func string (navnestreng, verdi streng, bruksstreng) *Streng

Funksjonen tar tre hovedargumenter: navnet på flagget, standardverdien og bruksmeldingen.

Funksjonen returnerer deretter en adressepeker til strengvariabelen som lagrer verdien av flagget.

Følgende kodeeksempel viser hvordan du lager et strengflagg:

pakkehoved
import (
"flagg"
"FMT"
)
func main ()
STR: = FLAG.String ("Brukernavn", "Root", "Spesifiser innloggingsbrukernavn")

I det forrige kodeeksemplet erklærer vi et flagg av typen streng. Vi setter standardverdien som "" rot "" og en kort beskrivelse som den tredje parameteren. Funksjonen vil returnere strengpekeren.

Flagg.Int ()

INT () -metoden er tett lik String () -metoden. Vi brukte imidlertid denne metoden for å erklære flagg av int -type.

Et eksempelkode vises nedenfor:

int_flag: = flagg.Int ("port", 3006, "spesifiser porten")

Her erklærer vi et int -flagg ved hjelp av flagget.Int () metode med en standardverdi på 3006.

Flagg.Bool ()

For å definere et boolsk flagg, kan vi bruke flagget.Bool () -metode. Et eksempelkode er gitt nedenfor:

bool_flag: = flagg.Bool ("exec", sant, "utfør kommandoen?")

Golang Flag Parsing

Når vi har erklært alle flaggene, bruker vi flagget.Parse () -metode. Dette vil analysere de medfølgende flaggene og la deg bruke dem:

flagg.Parse ()

Husk at flaggene i seg selv er pekere og har ikke den faktiske verdien. For å få verdien, må vi henvise til Dereferencing (*) -operatøren.

Et kildekodeeksempel er som vist:

pakkehoved
import (
"flagg"
"FMT"
)
func main ()
STR: = FLAG.String ("Brukernavn", "Root", "Spesifiser innloggingsbrukernavn")
int_flag: = flagg.Int ("port", 3006, "spesifiser porten")
bool_flag: = flagg.Bool ("exec", sant, "utfør kommandoen?")
flagg.Parse ()
fmt.Println ("str:", *str)
fmt.Println ("int_flag:", *int_flag)
fmt.Println ("bool_flag:", *bool_flag)

Den forrige koden skal returnere standardverdien for de spesifiserte flaggene. Et eksempelutgang er gitt nedenfor:

STR: ROOT
int_flag: 3006
bool_flag: sant

Golang Bruk kommandolinjeflagg

For å bruke flaggene til det spesifiserte programmet, anbefales det å samle programmet og kjøre programmet ved hjelp av den resulterende binære filen.

Vi kan kompilere et GO -program til en binær fil ved hjelp av build -kommandoen som:

gå bygg

For å bygge Flags -programmet i Go, kan vi for eksempel gjøre:

Gå bygg flagg.gå

Dette skal føre til en kjørbar fil, som du kan kjøre fra terminalen.

For å bruke de definerte flaggene, kan vi kjøre programmet som:

./flagg.Exe -Username = "Developer" -Port = 9000 -Exec = True

Det forrige programmet skal returnere en utdata som vist:

STR: Utvikler
int_flag: 9000
bool_flag: sant

For å få automatisk generert hjelp, kan vi bruke -H -flagget. Et eksempel er som vist:

./flagg.exe -h

Den forrige kommandoen skal returnere som:

-Exec
Utfør kommando? (standard true)
-Port int
Spesifiser porten (standard 3006)
-Brukernavnsstreng
Spesifiser innloggingsbrukernavn (standard "root")

Hvis vi spesifiserer et flagg som ikke er definert i programmet, returnerer programmet en feilmelding og viser hjelpemenyen.

Eksempel:

./flagg.exe -bruker = "bruker"

Programmet skal returnere en utdata som angitt nedenfor:

$ ./flagg.exe -bruker = bruker
flagg gitt, men ikke definert: -bruker
Bruk av /flagg.exe:
-Exec
.. . avkortet

Du kan også gi posisjonsargumenter etter flaggene. Forsikre deg om at posisjonsargumenter kommer etter et flagg. Ellers vil Go behandle dem som flagg.

Konklusjon

Dette var en introduksjonsopplæring om å jobbe med kommandolinjeflagg i Go-programmeringsspråket. Vi diskuterte også de forskjellige metodene, for eksempel flagg.Streng (), flagg.Int (), flagg.Bool (), Golang Flag Parsing, Golang Bruk kommandolinjeflagg og Golang Bruk kommandolinjeflagg. Vi håper du fant denne artikkelen nyttig. Sjekk ut andre Linux -hint -artikler for GO -tips og opplæringsprogrammer.