Golang Getopt V2:解析多个重复的标志

问题描述

我是golang的新手,我无法使用getopt版本2找到解决此问题的方法。

./example -v i=5 -v j=6 -v k=7 

我要按照此处https://www.gnu.org/software/gawk/manual/html_node/Options.html

的指示使用标志v

解决方法

以下代码能够解析同一标志的多个选项,因此对于上面的示例,它将打印[i = 5 j = 6 k = 7]

package main

import (
  "github.com/pborman/getopt/v2"
  "fmt"
  "runtime"
  "github.com/gthd/helper"
)

var (
  value helper.Helper
)

func init() {
 getopt.FlagLong(&value,"string",'v',"strings")
}

func main() {
  getopt.Parse()
  strings := value.ParseMultipleOptions()
  fmt.Println(strings)
}

辅助文件为

package helper

import (
    "strings"
    "github.com/pborman/getopt/v2"
)

type Helper []string

func (h *Helper) Set(str string,opt getopt.Option) error {
    *h = append(*h,str)
    _ = opt
    return nil
}

func (h *Helper) String() string {
    return strings.Join(h.Array(),",")
}

func (h *Helper) Array() []string {
    return *h
}

func (h *Helper) ParseMultipleOptions() []string {
    return h.Array()
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...