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
	*/
}

posted on 2023-03-23 10:56  进击的davis  阅读(26)  评论(0编辑  收藏  举报

导航