package flag

flag包实现了命令行参数的解析。

package main

import (
	"flag"

	"fmt"
)

var flagvar int
var flagvar2 string
var b = flag.String("b", "bbbbb", "input ur name")

//自定义docValue类型
type docValue string

func (d *docValue) String() string {
	return fmt.Sprint(*d)
}

func (d *docValue) Set(value string) error {
	*d = docValue(value)
	return nil
}

var flagvar3 docValue

func init() {
	//两个命令行参数 flagname,test,他们的值分别解析给flagvar,flagvar2两个变量
	//使用方式 go run main.go -flagname=990 -test=666
	flag.IntVar(&flagvar, "flagname", 12345, "help message for flagname")
	flag.StringVar(&flagvar2, "test", "flagvar2 value", "help message for test")
}

func main() {
	//自定义了一个docValue类型的变量flagvar3,用于接受-myname参数的值
	//go run main.go -flagname=990 -test=666 -myname=aaaa
	flag.Var(&flagvar3, "myname", "help message for myname")

	//参数解析到flagvar变量中
	flag.Parse()
        fmt.Println(flag.Args(), flag.NArg())
        fmt.Printf("b:%d\n", *b)
	fmt.Println(flagvar, flagvar2, flagvar3)

}




你可能感兴趣的:(package flag)