亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang flag變量調用的方式

Golang flag變量調用的方式

翻閱古今 2019-04-09 20:25:00
在寫一些工具的時候總會使用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)}
查看完整描述

2 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

使用flag.IntVar
packagemain
import(
"flag"
"fmt"
)
varworkersint;
funcmain(){
flag.IntVar(&workers,"r",1,"concurrentprocessing,default1.")
flag.Parse()
fmt.Println(workers);
}
不過從設計上來講,用全局變量不是一個好方法
                            
查看完整回答
反對 回復 2019-04-09
?
青春有我

TA貢獻1784條經驗 獲得超8個贊

全局變量的方式在go中很少使用吧(你看看標準庫,全局變量一般不超過三個)。我認為你可以通過包內另外定義一個取得命令行解析參數的函數。
                            
查看完整回答
反對 回復 2019-04-09
  • 2 回答
  • 0 關注
  • 344 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號