在寫一些工具的時(shí)候總會(huì)使用flag這個(gè)package.因?yàn)楹苁欠奖?但今天我在反復(fù)調(diào)用的時(shí)候發(fā)現(xiàn)總是需要使用*號(hào)是否有辦法不這樣調(diào)用?或者說flag的正確的變量調(diào)用應(yīng)該是怎么樣的.舉例說明:我的一般用法,采用了*workers這種方式調(diào)用.packagemainimport("flag""fmt")varworkers=flag.Int("r",1,"concurrentprocessing,default1.")funcmain(){flag.Parse()fmt.Println(*workers)}運(yùn)行:./do-r4結(jié)果為4但是我想在變量使用的時(shí)候不使用*worker,而是worker的方式.而且是一個(gè)全局變量的方式,其它函數(shù)也都可以使用,因?yàn)榛旧线@個(gè)變量是不會(huì)改變的.以下是我錯(cuò)誤的用法:因?yàn)闆]有flag.Parse()所以默認(rèn)的結(jié)果肯定是默認(rèn)值1packagemainimport("flag""fmt")varworkers=flag.Int("r",1,"concurrentprocessing,default1.")varnewworkers=*workersfuncmain(){flag.Parse()fmt.Println(newworkers)}運(yùn)行:./do-r4結(jié)果為1如果我要正確的使用flag的變量,并且實(shí)現(xiàn)我的想法該如何做呢?@jex提供的一個(gè)方法IntVar不能在var,可以在放置在initpackagemainimport("flag""fmt")varworkersint;funcinit(){flag.IntVar(&workers,"r",1,"concurrentprocessing,default1.")}funcmain(){flag.Parse()fmt.Println(workers)}
Golang flag變量調(diào)用的方式
翻閱古今
2019-04-09 20:25:00