GoFrame 命令管理-基本概念

2022-03-29 15:31 更新

參數(shù)(Argument)

程序命令行按照順序進行傳遞、沒有名稱標識的數(shù)據(jù)叫做參數(shù)(?Argument?),參數(shù)的輸入具有順序性。

選項(Option)

控制程序邏輯的附加輸入、并且具有名稱標識的數(shù)據(jù)叫做選項(?Options?),選項名稱以?-?或者?--?字符串作為前綴,選項是無序的,可以放置于命令行中任意位置。選項可以帶有數(shù)據(jù),也可以不帶數(shù)據(jù)。在其他類似的第三方功能組件里面,選項的功能類似于標識(?Flag?)。

此外,根據(jù)傳統(tǒng)的命令行管理習慣,選項可以設置縮寫別名(?Short?),用于簡化命令行參數(shù)輸入??s寫別名往往設定為一個單字母。

選項位置與=號

?gcmd?組件支持選項的位置在命令行中是任意的,也就是說,以下命令行選項輸入其實意義是一樣的:

gf build main.go -a amd64 -o linux -n app -yes
gf -a amd64 -o linux build main.go -yes -n app
gf -yes -n app build -o linux -a amd64 main.go

其中:

  • ?gf?/?build?/?main.go?是參數(shù),索引分別為 ?0?, ?1?, ?2?;因為參數(shù)是有序性的,因此無論命令行怎么修改,這三者的順序卻無法改變
  • ?a?/?o?/?n?是帶有數(shù)據(jù)的選項,由于是順序無關的,通過選項名稱獲取數(shù)據(jù),因此可以隨意放置位置
  • ?yes?是不帶數(shù)據(jù)的選項,也可以隨意放置位置

命令行的選項與數(shù)據(jù)之間可以通過空格,也可以通過?=?符號進行連接,如:

gf build main.go -a=amd64 -o=linux -n=app -yes

默認解析規(guī)則

由于?gcmd?模塊提供了一些包方法用以獲取默認的命令行解析規(guī)則。在默認規(guī)則下,將會自動識別參數(shù)與選項。

命令行中帶有=符號的場景下

gf build main.go -a=amd64 -o=linux -n=app -yes

在默認規(guī)則下:

  • ?gf?/?build?/?main.go?是參數(shù),索引分別為0?, ?1?,?2?。
  • ?a?/?o?/?n?/?yes?將會被解析為選項,并且?yes?為無數(shù)據(jù)選項。

不使用=符號來連接選項參數(shù)

gf build main.go -a amd64 -o linux -n app -yes

在默認規(guī)則下:

  • ?gf?/?build?/?main.go?是參數(shù),索引分別為 ?0?, ?1?, ?2?。
  • ?a?/?o?/?n?/?yes?將會被解析為選項,并且?yes?為無數(shù)據(jù)選項


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號