TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

<< Back to GO

Golang flag Examples

Pass command-line arguments to a program and receive them with the flag package.
Flag. Flags are arguments passed to a program. In Go, we parse these flags with the flag package. We call funcs like flag.Int and flag.String.
Package notes. With the flag package, we must first register flags. Then we call flag.Parse() to parse these in from the command line.
Flag.Int example. Here we register an Int flag by calling the flag.Int function in main(). Note that the "flag" package is imported in the import block at the top.

Then: The flag.Int func returns an Int pointer. We access its Int value with the star character.

Copy: We can copy the value from the Int pointer into an Int with an assignment statement. We do this with the "value" local.

Run: We invoke the Go executable and pass the "run" argument to it. We pass the program file name and specify the count argument.

Default: The second argument is the default value for that flag. If Parse() is called and no value is found, 5 will be used.

Golang program that uses flag.Int, command-line argument package main import ( "flag" "fmt" ) func main() { // Register Int flag. count := flag.Int("count", 5, "count of iterations") // Parse the flags. flag.Parse() // Print the argument. fmt.Println("Argument", *count) // Get int from the Int pointer. value := *count fmt.Println("Value", value) } Command line: C:\Go\bin\Go.exe run C:\programs\file.go -count=20 Output Argument 20 Value 20
Flag.String. Let us consider a String argument. With a String, no special parsing method is invoked internally, but we must still call Parse.

Here: We specify a special "greeting" string, and then uppercase it as the program executes.

Golang program that uses flag.String package main import ( "flag" "fmt" "strings" ) func main() { // A string flag. greeting := flag.String("greeting", "Hello", "startup message") flag.Parse() // Get String. // ... Uppercase it for emphasis. value := *greeting fmt.Println("Program says:", strings.ToUpper(value)) } Command line: C:\Go\bin\Go.exe run C:\programs\file.go -greeting=Hey Output Program says: HEY
Command line syntax. We can omit the equals sign when using an argument on the command line. But a leading hyphen is required. And case is important.
Example command line syntax: C:\Go\bin\Go.exe run C:\programs\file.go -greeting Hey Program says: HEY C:\Go\bin\Go.exe run C:\programs\file.go greeting Hey Program says: HELLO C:\Go\bin\Go.exe run C:\programs\file.go GREETING=Hey Program says: HELLO
Invalid argument. With a func like flag.Int we must pass an argument that can be parsed correctly. We cannot parse the string "bird" as an Int. An error occurs.ParseInt
Golang program that shows invalid argument package main import ( "flag" "fmt" ) func main() { // A string flag. size := flag.Int("size", 0, "file size") flag.Parse() // Print size. fmt.Println(*size) } Command line: C:\Go\bin\Go.exe run C:\programs\file.go -size=bird Output invalid value "bird" for flag -size: strconv.ParseInt: parsing "bird": invalid syntax Usage of C:\...\go-build032374134\command-line-arguments\_obj\exe\file.exe: -size int file size exit status 2
Flag research. On the Golang site we find a more thorough description of the flag package functions. In addition to Int and String we find helpful methods like Bool and Duration.

Quote: Package flag implements command-line flag parsing.

Flag: golang.org
A summary. With command lines, programs communicate with other programs. Simple arguments can be passed directly. With "flag," a Go package, we make this communication easier.
© TheDeveloperBlog.com
The Dev Codes

Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf