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