package main
import (
"fmt"
"os"
)
func main() {
arg := os.Args
if len(arg) < 2 {
warn()
return
}
for i := 0; i < len(arg); i++ {
fmt.Println(arg[i])
}
}
func warn() {
fmt.Println("input:you name")
fmt.Println("input:you age")
}
这种方式其实比较常用,但是不太友好;flag方式给用户更多的选择,可以设置默认值,可以提示
package main
import (
"flag"
"fmt"
)
//获得命令行参数
//Go语言标准库提供了用于快迅解析命令行参数的flag包,大致的使用步骤如下:
//a.通过flag.String(), flag.Bool(), flag.Int()等方式来定义命令行中需要使用的参数。
//说明:
//第一个arg:参数名称,在控制台的时候,提供给用户使用.
//第二个arg:默认值,如果用户在控制台没有给该参数赋值的话,就会使用该默认值.
//第三个arg:说明和描述,在控制台中输入xxx.exe -arg的时候会显示该说明,类似-help
//go build
//demo3_flag.exe false 2 lcq2
//第一个参数
//不加*,输出的是地址值
func main() {
married := flag.Bool("married", false, "Are you married?")
age := flag.Int("age", 22, "how old are you?")
name := flag.String("name", "lcq", "what you name?")
flag.Parse()
fmt.Printf("merried? %v age:%d name:%s ", *married, *age, *name)
}