OS Args Golang

OS Args Golang
Hvis du noen gang har brukt et kommandolinjeverktøy, vet du at det er en ting de alle har til felles. De godtar alle kommandolinje argumenter.

Argumenter er en av de beste måtene å lage parametere for programmer under utførelse. Når du for eksempel kjører GO Run -kommandoen, spesifiserer du også navnet på filen du ønsker å kompilere. Her er kjøringen og navnet på filen kommandolinje argumenter som forteller Go-kompilatoren hva du skal gjøre.

Denne guiden vil lede deg gjennom å lage argumenter for dine GO -programmer.

Golang OS -pakke

For å bruke kommandolinjeargumenter i programmet vårt, må vi importere OS-pakken. Denne pakken inneholder OS.Args Variable som inneholder kommandolinjeargumenter

Denne variabelen er en rekke strenger, og den holder oversikt over argumentene som er overført til programmet. Husk at det første argumentet faktisk er navnet på programmet.

For eksempel:

pakkehoved
import (
"FMT"
"OS"
)
FUNCMAIN ()
PG_NAME: = OS.Args [0]
fmt.Println (PG_NAME)

I eksemplet over bruker vi OS.Args Array for å hente det første argumentet (indeks 0). Siden det første argumentet er navnet på programmet basert på Go -kompilatoren, er den resulterende utgangen hele veien til den kjørbare av programmet.

$ go run os_args.gå
C: \ Brukere \ Csalem \ AppData \ Local \ Temp \ Go-Build3770603401 \ B001 \ EXE \ OS_Args.EXE
Golang får antall argumenter

Golang får antall argumenter

Vi kan få antall argumenter som er gitt til et program ved hjelp av Len () -funksjonen. Siden OS.Args er ganske enkelt en matrise, Len -funksjonen vil returnere antall elementer i matrisen.

Et eksempelprogram er som vist nedenfor:

Packagemain
import (
"FMT"
"OS"
)
FUNCMAIN ()
Arg_len: = Len (OS.Args [1:])
fmt.Println ("Argumentlengde:", Arg_len)

Hvis vi kjører ovennevnte kode med et antall kommandolinjeargumenter:

$ go run os_args.Gå først, andre, tredje

Vi bør få det totale antallet argumenter som er gitt til programmet

Argumentlengde: 3

Merk: Siden vi vet at det første argumentet er navnet på programmet, bruker vi matrise -skiver for å fjerne det første elementet og ta tak i alle andre argumenter etter indeks 0.

Golang-kommandolinjeflagg

Vi kan definere våre egne tilpassede flagg ved hjelp av flaggpakken. Et eksempel på et kommandolinjeflagg ville være -h, -l eller annet.

For eksempel lar MySQL CMD -verktøyet deg spesifisere brukernavnet og passordet ved å bruke kommandoen:

mysql -u root -p

La oss implementere et enkelt program som fungerer som en påloggingsprompt.

pakkehoved
import (
"flagg"
"FMT"
)
FUNCMAIN ()
var brukernavn streng
var passordstreng
flagg.StringVar (& Brukernavn, "U", "Root", "Standard brukernavn: root")
flagg.StringVar (& Password, "P", "MySQL", "Standard passord: MySQL")
Hvis brukernavn == "root" && passord == "mysql"
fmt.Println ("mysql>")
annet
fmt.Println ("En feil oppstår.")

Ovennevnte enkle program bruker -u og -p -flagget for å sjekke om det oppgitte brukernavnet og passordkampen. Hvis riktig, viser vi en "mysql" -prompt og ellers, returner en melding.

Når vi bygger programmet:

Gå bygg cmd_flag.gå

Vi kan løpe med argumentene som

./cmd_flags.exe -u root -p mysql

Dette skal returnere meldingen i IF -blokken som vist:

$ ./flagg.exe -u root -p mysql
Mysql

Ellers bør kommandoen returnere meldingen i andre blokkering.

Konklusjon

I denne artikkelen dekket vi det grunnleggende om å jobbe kommandolinjeargumentene ved hjelp av OS-pakken. Vi dekket også hvordan du bruker kommandolinjeflagg fra flaggpakken.

Takk for at du leste!!