人人妻人人澡人人爽人人精品av_精品乱码一区内射人妻无码_老司机午夜福利视频_精品成品国色天香摄像头_99精品福利国产在线导航_野花社区在线观看视频_大地资源在线影视播放_东北高大肥胖丰满熟女_金门瓶马车内剧烈运动

首頁>國內(nèi) > 正文

世界今熱點(diǎn):Golang中命令行參數(shù)解析工具flag包詳解之一

2023-07-05 10:22:13來源:今日頭條


(資料圖片)

flag包作用

Golang中的flag包用于解析命令行參數(shù),提供了一個方便的接口來接收命令行參數(shù),并將其轉(zhuǎn)換為Go語言中的值。

使用方法

先看段示例代碼:

package mainimport ("flag""fmt")func main() {var name stringflag.StringVar(&name, "name", "luduoxin", "請輸入名稱:")flag.Parse()fmt.Printf("name: %s\n", name)}

運(yùn)行一下看下效果。

$ go run ./main.go -name xiaomingname: xiaoming

在命令行通過-name參數(shù)傳入xiaoming后,name這個變量獲取到了這個值。StringVar方法將參數(shù)綁定到指定的變量,該方法有四個參數(shù):

第一個是綁定的變量,指針類型。第二個是參數(shù)名稱。第三個是默認(rèn)值。第四個是提示信息。
$ go run ./main.go -h              -name string        請輸入名稱: (default "luduoxin")

這里只是使用StringVar方法來舉例,還有很多和StringVar功能類似的方法,只是類型不同,如BoolVar、DurationVar、Float64Var、IntVar、Int64Var、UintVar和Uint64Var。這8個方法分別對應(yīng)著不帶Var的方法,如下String、Bool、Duration、Float64、Int、Int64、Uint和Uint64,以String為例:

package mainimport ("flag""fmt")func main() {name := flag.String("name", "luduoxin", "請輸入名稱:")flag.Parse()fmt.Printf("age: %T\n", name)fmt.Printf("age: %s\n", *name)}

運(yùn)行看下效果:

$ go run ./main.go -name xiaomingage: *stringage: xiaoming

String規(guī)范法有三個參數(shù):

第一個參數(shù)是參數(shù)名稱第二個參數(shù)是默認(rèn)值第三個參數(shù)是提示信息

返回的是對應(yīng)的指針類型,獲取參數(shù)結(jié)果需要使用*name。

上面兩個實(shí)例中都調(diào)用了flag.Parse(),這個方法用來解析參數(shù),如果不調(diào)用該方法,參數(shù)不會被解析,但是可以獲得默認(rèn)值。注釋此方法運(yùn)行看下效果:

go run ./chan.go -name xiaomingage: *stringage: luduoxin

雖然傳入了xiaoming,但值依然是默認(rèn)值luduoxin。

關(guān)鍵詞:

相關(guān)新聞

Copyright 2015-2020   三好網(wǎng)  版權(quán)所有 聯(lián)系郵箱:435 22 [email protected]  備案號: 京ICP備2022022245號-21