Command-line flags
ကိုကွန်မန်းလိုင်းပရိုဂရမ်များအတွက် option များသတ်မှတ်ရန် အသုံးများသောနည်းလမ်းတစ်ခုဖြစ်သည်။
ဥပမာ |
|
package main |
|
Go သည် အခြေခံ command-line flag parsing ကို ထောက်ပံ့ပေးသော |
import ( "flag" "fmt" ) |
func main() { |
|
အခြေခံ flag ကြေညာချက်များကို string, integer နှင့် boolean option များအတွက် ရရှိနိုင်သည်။
ဤနေရာတွင် ကျွန်ုပ်တို့သည် |
wordPtr := flag.String("word", "foo", "a string") |
ဤသည်မှာ |
numbPtr := flag.Int("numb", 42, "an int") forkPtr := flag.Bool("fork", false, "a bool") |
ပရိုဂရမ်၏ အခြားနေရာတွင် ကြေညာထားပြီးသား var ကို အသုံးပြုသော option ကိုလည်း ကြေညာနိုင်သည်။ flag ကြေညာခြင်း function သို့ pointer တစ်ခုကို ပေးပို့ရန် လိုအပ်ကြောင်း သတိပြုပါ။ |
var svar string flag.StringVar(&svar, "svar", "bar", "a string var") |
flag အားလုံးကြေညာပြီးနောက် command-line parsing ကို အကောင်အထည်ဖော်ရန် |
flag.Parse() |
ဤနေရာတွင် ကျွန်ုပ်တို့သည် parse လုပ်ထားသော option များနှင့် နောက်ဆက်တွဲ positional argument များကို dump လုပ်မည်။
အမှန်တကယ် option တန်ဖိုးများကို ရရှိရန် |
fmt.Println("word:", *wordPtr) fmt.Println("numb:", *numbPtr) fmt.Println("fork:", *forkPtr) fmt.Println("svar:", svar) fmt.Println("tail:", flag.Args()) } |
command-line flags ပရိုဂရမ်ကို စမ်းသပ်ရန်အတွက် ပထမဦးစွာ compile လုပ်ပြီး ထွက်လာသော binary ကို တိုက်ရိုက် run သင့်သည်။ |
$ go build command-line-flags.go
|
flag အားလုံးအတွက် တန်ဖိုးများပေး၍ build လုပ်ထားသော ပရိုဂရမ်ကို စမ်းသပ်ကြည့်ပါ။ |
$ ./command-line-flags -word=opt -numb=7 -fork -svar=flag word: opt numb: 7 fork: true svar: flag tail: [] |
flag များကို ချန်လှပ်ထားပါက ၎င်းတို့သည် အလိုအလျောက် ၎င်းတို့၏ မူလ(default) တန်ဖိုးများကို ယူကြောင်း သတိပြုပါ။ |
$ ./command-line-flags -word=opt word: opt numb: 42 fork: false svar: bar tail: [] |
နောက်ဆက်တွဲ positional argument များကို flag များ၏နောက်တွင် ပေးနိုင်သည်။ |
$ ./command-line-flags -word=opt a1 a2 a3 word: opt ... tail: [a1 a2 a3] |
|
$ ./command-line-flags -word=opt a1 a2 a3 -numb=7 word: opt numb: 42 fork: false svar: bar tail: [a1 a2 a3 -numb=7] |
command-line ပရိုဂရမ်အတွက် အလိုအလျောက်ထုတ်ပေးသော
help စာသားကို ရရှိရန် |
$ ./command-line-flags -h Usage of ./command-line-flags: -fork=false: a bool -numb=42: an int -svar="bar": a string var -word="foo": a string |
|
$ ./command-line-flags -wat flag provided but not defined: -wat Usage of ./command-line-flags: ... |
နောက်ဥပမာ: Command-Line Subcommands.