码迷,mamicode.com
首页 > 其他好文 > 详细

golang.flag-package

时间:2020-07-10 15:22:54      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:pre   命令   参数   import   lse   lag   rgs   host   表示   

package main

import (
	"flag"
	"fmt"
)

//**Demo1**:
func main() {
	t1 := flag.Int("w", 0, "demo test")          //int变量
	t2 := flag.String("a", "Hello", "demo test") //string变量
	flag.Parse()                                 //Parse()代表我们开始解析参数,在Parse以后,我们是不允许再添加参数的
	fmt.Println("t1 is ", *t1)                   //*t1使用指针,表示标签解析的结果
	fmt.Println("t2 is ", *t2)
	fmt.Printf("There is %d non-flag\n", flag.NArg()) //NArg()用来输出non-flag参数的个数
	for i, arg := range flag.Args() {                 //循环获取参数
		fmt.Printf("%d is %s\n", i+1, arg)
	}
}

//**Demo2**:
func main() {
	// 定义几个变量,用于接收命令行的参数值
	var user string
	var pwd string
	var host string
	var port int
	// &user 就是接收用户命令行中输入的 -u 后面的参数值
	// "u" 就是 -u 指定的参数
	// "" 默认值
	// "用户名,默认为空" 说明
	flag.StringVar(&user, "u", "", "用户名,默认为空")
	flag.StringVar(&pwd, "pwd", "", "密码,默认为空")
	flag.StringVar(&host, "h", "localhost", "主机名,默认为 localhost")
	flag.IntVar(&port, "port", 3306, "duan端口号,默认3306")
	//【必须调用】从arguments中解析注册的flag
	flag.Parse()
	// 输出结果
	fmt.Printf("\n user=%v \n pwd=%v \n host=%v \n port=%v \n", user, pwd, host, port)
}

//**Demo3**:
func main() {
	backupdir := flag.String("b", "/home/default_dir", "backup path")
	debugmode := flag.Bool("d", false, "debug mode")
	flag.Parse()
	fmt.Println("backupdir: ", *backupdir)
	fmt.Println("debugmode: ", *debugmode)
}

/**
  启动命令:go run main.go -b /home/backup
  输出结果:
      backup_dir:  /home/backup  // 因为指定了路径,所以覆盖了默认路径
      debug_mode:  false         // 启动命令里不带 -d 参数,所以启用默认值
*/

golang.flag-package

标签:pre   命令   参数   import   lse   lag   rgs   host   表示   

原文地址:https://www.cnblogs.com/kylingx/p/13278994.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!