62

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

 4 years ago
source link: https://www.tuicool.com/articles/QnEf2yj
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
VvQvymj.jpg!web

敲黑板,黑... 嘿重要,~ 必须掌握 ~

使用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

    AVRvI3n.png!web
  • func IntVar

    veeiErb.png!web
  • flag.Parse() * 必须调用flag.Parse()方法进行转换*

    2Yn6rmB.png!web

上代码

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,结果呈现,来贴一张图

j6bMJ3q.png!web

Golang flag解析命令行实现结果

请注意

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK