问题描述
我是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()
}