use 'flag' to make a cli app
package main
import (
"flag"
"fmt"
"os"
)
func main() {
age := flag.Int("age", 0, "Input age [int]")
ifAdult := flag.Bool("isAdult", false, "default is false, set true ifAdult")
var ip string
flag.StringVar(&ip, "ip", "", "input ip : 192.168.1.1:1080")
flag.Parse()
rests := flag.Args()
test := os.Args
fmt.Println(*age, ifAdult, ip)
fmt.Println(test)
fmt.Println(rests)
}
/*
F:\Coding\letsgo\5_开源学go\flag>main.exe -age 12 -ip "192.168.2.135:10809" "testes" "12345"
12 0xc0000a60d0 192.168.2.135:10809
[main.exe -age 12 -ip 192.168.2.135:10809 testes 12345]
[testes 12345]
*/There are two ways to get params, one is using flag.TYPE(), you will get param’s pointer; Another is using a var bind to falg.TYPEVar, you will get parm directly.