Golang flag 获取多个值

Golang flag 获取多个值

Posted June 26, 2017

flag包是golang中处理command line参数标准库。

GoDoc: https://golang.org/pkg/flag/

但是在某些情况下,我们要对一个key指定多个值。 并获取多个值得数组。 这时我们需要定义一个Type Value接口类型

Go

type Value interface {
    String() string
    Set(string) error
}

重写Set方法, 处理每个value, 追加到最终的数组.

Go

type arrayFlags []string

// Value ...
func (i *arrayFlags) String() string {
    return fmt.Sprint(*i)
}

// Set 方法是flag.Value接口, 设置flag Value的方法.
// 通过多个flag指定的值, 所以我们追加到最终的数组上.
func (i *arrayFlags) Set(value string) error {
    *i = append(*i, value)
    return nil
}

使用

Go

var mongoAddrs arrayFlags

flag.Var(&mongoAddrs, "addr", "Database hosts")

flag.Parse()

传参执行方式

Bash

./main --addr 192.168.0.55 --addr 192.168.0.56

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏绿巨人专栏

TypeScript中的怪语法

50150
来自专栏程序员的知识天地

良好的代码格式反映了程序员的编码能力,好的程序员应该这么编码

大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果 是非空代码块则:

14310
来自专栏PHP在线

PHP 编码规范

该 PHP 编码规范基本上是同 PSR 规范的。有一部分的编码规范 PSR 中是建议,此编码规范会强制要求。 此编码规范 是以 PSR-1 / PSR-2 / ...

20020
来自专栏小灰灰

SPI框架实现之旅二:整体设计

SPI框架实现之旅二:整体设计 上一篇简单的说了一下spi相关的东西, 接下来我们准备开动,本篇博文主要集中在一些术语,使用规范的约定和使用方式 设计思路 下...

36080
来自专栏行者常至

012.golang 接口interface

7510
来自专栏进击的君君的前端之路

知识点梳理

11220
来自专栏CDA数据分析师

Python3 大作战之 encode 与 decode 讲解

原文链接http://blog.csdn.net/qq_29053519/article/details/79170519 大家好,很久没更新了,也是年底了最近...

30450
来自专栏小狼的世界

如何向回调函数中传入其他参数

最近写JS经常会因为向回调函数中传参而头疼,今天总结一下向回调函数中传参的方法,以后的应用中就不用在到处去找了。

6710
来自专栏ACM算法日常

Bessie的好牌(队列)- POJ 3629

Bessie is playing a card game with her N-1 (2 ≤ N ≤ 100) cow friends using a dec...

12830
来自专栏nimomeng的自我进阶

《Objective-C基础教程》笔记

1.xcode中,oc的.m文件代表message,指的是Objective-C的一个主要特性。 2.NS前缀的来历要追溯到次公局包还被成为NextStep,...

8920

扫码关注云+社区

领取腾讯云代金券