golang.flag-package

Posted kylingx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang.flag-package相关的知识,希望对你有一定的参考价值。

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
", flag.NArg()) //NArg()用来输出non-flag参数的个数
	for i, arg := range flag.Args() {                 //循环获取参数
		fmt.Printf("%d is %s
", 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("
 user=%v 
 pwd=%v 
 host=%v 
 port=%v 
", 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的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数