看看就会系列。
代码如下:
package main
import (
"flag"
"fmt"
"strings"
)
// flag 命令行参数解析
func main() {
//1.
name := flag.String("name", "大雪", "第三个参数是说明,如:一个地址")
age := flag.Int("age", 18, "年龄")
//2. 这就能直接绑定到gender上了
var gender string
flag.StringVar(&gender, "gender", "男", "性别")
//3. 将参数值绑定到结构体上
var hobby Hobby
flag.Var(&hobby, "hobby", "爱好")
flag.Parse()
fmt.Printf("name: %s, age: %d, hobby: %v\n", *name, *age, hobby)
fmt.Println(len(hobby))
}
type Hobby []string
func (h *Hobby) String() string {
return strings.Join(*h, ",")
}
func (h *Hobby) Set(s string) error {
fmt.Println("进来了set")
for _, v := range strings.Split(s, ",") {
*h = append(*h, v)
}
return nil
}
可以使用两个 – 横杠 或者 =