Skip to content

flag

حزمة flag المدمجة في لغة Go تنفذ تحليل معاملات سطر الأوامر، وتجعل حزمة flag تطوير أدوات سطر الأوامر أكثر بساطة.

الاستيراد

go
import flag

الأنواع

الأنواع التي تدعمها هي:

  • bool
  • int
  • int64
  • uint
  • uint64
  • float
  • float64
  • string
  • duration

التعريف

استخدم flag.Type() للتعريف، القيمة المرجعة هي مؤشر

go
name := flag.String("name", "张三", "姓名")
age := flag.Int("age", 15, "年龄")
sex := flag.Bool("sex", true, "性别")

يمكن أيضاً استخدام flag.TypeVar() للتعريف

go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "张三", "姓名")
flag.IntVar(&age, "age", 15, "年龄")
flag.BoolVar(&sex, "sex", true, "性别")

التحليل

من خلال استدعاء flag.Parse() لتحليل المعاملات، صيغ معاملات سطر الأوامر المدعومة هي:

  • -flag xxx
  • --flag xxx
  • -flag=xxx
  • --flag=xxx

معاملات النوع المنطقي يجب أن تستخدم علامة المساواة، ويتوقف تحليل flag عند أول معامل ليس من سطر الأوامر.

أخرى

go
func Args() []string // إرجاع جميع المعاملات غير الأمر

func NArg() int // إرجاع عدد المعاملات غير سطر الأوامر

func NFlag() int // إرجاع عدد معاملات سطر الأوامر

مثال

go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "张三", "姓名")
flag.IntVar(&age, "age", 15, "年龄")
flag.BoolVar(&sex, "sex", true, "性别")

flag.Parse()
fmt.Println(name, age, sex)

بعد التجميع، قم بتشغيل البرنامج في سطر الأوامر

powershell
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe
张三 15 true
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe -h
Usage of D:\WorkSpace\Code\GoProject\bin\go_build_GoProject_src_main.exe:
  -age int
        年龄 (default 15)
  -name string
        姓名 (default "张三")
  -sex
        性别 (default true)
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe -age 15 -name "李四" -sex=false
李四 15 false
PS D:\WorkSpace\Code\GoProject\bin>

Golang تم تحريره بواسطة www.golangdev.cn