从现在开始,我们要努力学习啦!今天我给大家带来《Golang Getopt V2:处理重复标志》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!
问题内容我是 golang 新手,我无法使用 getopt 版本 2 找到此问题的解决方案。
./example -v i=5 -v j=6 -v k=7
我想使用此处所示的标志 v https://www.gnu.org/software/gawk/manual/html_node/options.html
解决方案
以下代码能够解析同一标志的多个选项,因此对于上面的示例,它将打印 [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()
}
以上就是《Golang Getopt V2:处理重复标志》的详细内容,更多关于的资料请关注编程网公众号!