go 标准包flag的基本用法
相关用法见代码
flag.Type()
# 通过 flag.Type() 返回对应类型的指针,姐应用后使用该值
package main
import (
"flag"
"fmt"
"time"
)
func main() {
// 通过 flag.Type() 返回对应类型的指针,姐应用后使用该值
name := flag.String("name", "张三", "姓名")
age := flag.Int("age", 18, "年龄")
married := flag.Bool("married", false, "婚否")
delay := flag.Duration("d", 0, "时间间隔")
flag.Parse()
fmt.Printf("name: %s, age: %d, married: %t, delay: %v", *name, *age, *married, *delay)
}
flag.TypeVar()
package main
import (
"flag"
"fmt"
"time"
)
func main() {
// 通过 flag.typeVar() 返回对应类型的值
var name string
var age int
var married bool
var delay time.Duration
flag.StringVar(&name, "name", "张三", "姓名")
flag.IntVar(&age, "age", 35, "年龄")
flag.BoolVar(&married, "married", false, "婚否")
flag.DurationVar(&delay, "delay", 0, "延迟")
flag.Parse()
fmt.Printf("name: %s, age: %d, married: %t, delay: %v\n", name, age, married, delay)
fmt.Println("命令行后的其他参数:", flag.Args())
fmt.Println("命令行后的参数个数:", flag.NArg())
fmt.Println("使用的命令个数:", flag.NFlag())
/*
$ ./main -help
Usage of D:\demo1\src\demo23\go-flag-demo\main:
-age int
年龄 (default 35)
-delay duration
延迟
-married
婚否
-name string
姓名 (default "张三")
$ ./main -name=李四 -age=60 -married=true -delay=2h38m30s a b c
name: 李四, age: 60, married: true, delay: 2h38m30s
命令行后的其他参数: [a b c]
命令行后的参数个数: 3
使用的命令个数: 4
*/
}