代码:
// targs.go
package main
import (
"log"
"flag"
"strings"
)
// 定义可重复参数
type strSlice []string
func (s *strSlice) Set(value string) error {
*s = append(*s, value)
return nil
}
func (s strSlice) String() string {
return strings.Join(s, ",")
}
func main() {
// 声明变量
var (
name = flag.String("name", "Lilei", "Give your name")
age = flag.Int("age", 28, "Give your age")
iscold = flag.Bool("iscold", false, "Are you cold")
arglst strSlice
)
// 解析 arg 格式的参数
flag.Var(&arglst, "arg", "some other arg")
// 解析参数
flag.Parse()
// 输出测试
log.Printf("name: [%s]", *name)
log.Printf("age: [%d]", *age)
log.Printf("iscold: [%t]", *iscold)
log.Printf("arglst: [%v]", arglst)
}
测试:

发表回复