在寫一些工具的時候總會使用flag這個package.因為很是方便.但今天我在反復調用的時候發現總是需要使用*號是否有辦法不這樣調用?或者說flag的正確的變量調用應該是怎么樣的.舉例說明:我的一般用法,采用了*workers這種方式調用.packagemainimport("flag""fmt")varworkers=flag.Int("r",1,"concurrentprocessing,default1.")funcmain(){flag.Parse()fmt.Println(*workers)}運行:./do-r4結果為4但是我想在變量使用的時候不使用*worker,而是worker的方式.而且是一個全局變量的方式,其它函數也都可以使用,因為基本上這個變量是不會改變的.以下是我錯誤的用法:因為沒有flag.Parse()所以默認的結果肯定是默認值1packagemainimport("flag""fmt")varworkers=flag.Int("r",1,"concurrentprocessing,default1.")varnewworkers=*workersfuncmain(){flag.Parse()fmt.Println(newworkers)}運行:./do-r4結果為1如果我要正確的使用flag的變量,并且實現我的想法該如何做呢?@jex提供的一個方法IntVar不能在var,可以在放置在initpackagemainimport("flag""fmt")varworkersint;funcinit(){flag.IntVar(&workers,"r",1,"concurrentprocessing,default1.")}funcmain(){flag.Parse()fmt.Println(workers)}
Golang flag變量調用的方式
翻閱古今
2019-04-09 20:25:00