分享
  1. 首页
  2. 文章

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

aside section ._1OhGeD · · 2400 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

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


  • func IntVar


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


上代码

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解析命令行实现结果

请注意

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


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:aside section ._1OhGeD

查看原文:Golang学习笔记 - flag解析命令行参数

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
2400 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏