天天看点

Golang学习笔记 - flag解析命令行参数

Golang学习笔记 - flag解析命令行参数

使用go语言里面的 flag来解析命令行参数,代码实现还是简洁,简单,但据说实际开发经常会用它来解析命令行参数. 下面先把用到flag包下面的方法给给位学习的朋友贴出来,同时也是自我巩固如何查看包文件,方法…

Golang中文版文档地址: https://studygolang.com/pkgdoc

列重点

部分代码说明:

flag.StringVar(&user, "u", "", "用户名默认为空")
flag.StringVar(&pwd, "pwd", "", "密码默认为空")
flag.StringVar(&host, "h", "localhost", "主机名默认为 localhost")
flag.IntVar(&port, "port", 3306, "端口号默认为3306")
           

这其实就对应命令行: test.exe -u myname -pwd 123456 -h 127.0.0.5 -port 8080

通过以上代码,用户在命令行输入参数是无需按照前后顺序输入,程序同样可以判断,解析用户的信息.

  • func StringVar
    Golang学习笔记 - flag解析命令行参数
  • func IntVar
    Golang学习笔记 - flag解析命令行参数
  • flag.Parse() * 必须调用flag.Parse()方法进行转换*
    Golang学习笔记 - flag解析命令行参数
上代码
package main

import (
	"flag"
	"fmt"
)

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, "端口号默认为3306")

	// 必须调用flag.Parse()方法进行转换
	flag.Parse()

	//fmt输出结果
	fmt.Printf(" user = %v\n pwd4 = %v\n host = %v\n port = %v\n",
		user, pwd, host, port)
}

           
看结果

1, 先build一个test.exe可执行文件 go build -o test.exe main.go

2, 运行test.exe 并赋值,例如: test.exe -u myname -pwd 123456 -h 127.0.0.5 -port 8080

3,结果呈现,来贴一张图

Golang学习笔记 - flag解析命令行参数
请注意

本文部分内容,图片,及视频源于网络转载, 不以盈利为目的,不构成商业目的使用, 仅用于学习交流…相关版权归原作者所有。如有异议,请联系我 [email protected] [麦特matt]

将在第一时间作出相关处理.

继续阅读