为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 用 flag 来操作控制台参数

标签:
Go 区块链
楔子

文/谦益

go开发的程序可以直接在控制器或者终端运行,但是问题来了,如果我们的程序有些变量需要用户启动程序是自定义,比如服务器的监听端口。当然我们可以把他写到配置文件里面,但是在特定环境下,还是通过启动时参数来得方便。
那怎么在程序里面获取启动时传过来的参数呢?就是这篇文章要介绍的 flag 包。

安装

flag 包是go语言自带的包,不需要安装,所以这一步可以省略。

导入

和其他 OS 包一样,直接

import "flag"

就可以了

编写代码
  • 定义的格式
flag.TypeVar(&flagvar, name, defValue, usage)

其中Type为String, Int, Bool等;并返回一个相应类型的指针。

  • 来一段示例吧:
package main

import (
    "flag"
    "fmt"
)

func main() {
    ok := flag.Bool("ok", false, "is ok")
    id := flag.Int("id", 0, "id")

        //这个方法很重要,
    flag.Parse()

    fmt.Println("ok:", *ok)
    fmt.Println("id:", *id)
}

这里我们定义了两个变量,分别是ok和id,通过flag.Boolflag.Int来接收启动时传入的参数。

使用

使用就很简单了,我们可以用

go build

把我们的程序编译成可执行文件,再调起这个可执行文件就行,像下面的这样。

./main --id=12 --ok=true

也可以直接

go run main.go --id=12 --ok=true

这样测试。

输出的结果就是这样咯。

ok: true
id: 12
补充

使用flag来操作命令行参数,支持的格式有下面四种:

-id=1
--id=1
-id 1
--id 1

是不是挺简单的。

[获取授权]

点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
1.6万
获赞与收藏
399

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消