部署golang專案時難免要通過命令列來設定一些引數,那麼在golang中如何操作命令行引數呢?可以使用flag庫和os庫。
1.flag庫的使用
go語言標準庫提供了用於快迅解析命令列引數的flag包,大致的使用步驟如下:
a.通過flag.string(), flag.bool(), flag.int()等方式來定義命令列中需要使用的引數。
b.在定義完flag後,通過呼叫flag.parse()來進行對命令列引數的解析。
c.獲取flag.string(), flag.bool(), flag.int()等方法的返回值,即對應使用者輸入的引數.
需要注意的是flag.***()返回的值是變數的記憶體位址,要獲取值時要通過在變數前加*(星號)獲取.
說明:像flag.int、flag.bool、flag.string這樣的函式格式都是一樣的,呼叫的時候需要傳入3個引數
引數的說明如下:
第乙個arg表示引數名稱,在控制台的時候,提供給使用者使用.
第二個arg表示預設值,如果使用者在控制台沒有給該引數賦值的話,就會使用該預設值.
第三個arg表示使用說明和描述,在控制台中輸入-arg的時候會顯示該說明,類似-help
看個完整的使用例子:
package main
import (
"flag"
"fmt"
)func main() 12
3456
78910
1112
1314
1516
1718
1920
2122231
2345
6789
1011
1213
1415
1617
1819
2021
2223
執行結果:
這裡寫描述
從執行結果中可以看出,address引數我們並沒有指定值,則輸出的就是預設值.
另外,-arg後面的=號也不是必須的,可以用空格代替.
如果要檢視該程式的所有引數的使用,可以使用-help來檢視,如下:
這裡寫描述
2.os庫的使用
直接看例子
package main
import (
"os"
"fmt"
)func main()
name := args[1] //獲取輸入的第乙個引數
age := args[2] //獲取輸入的第二個引數
fmt.println("your name is:",name,"\nyour age is:",age)
}var usage = func() 12
3456
78910
1112
1314
1516
1718
1920
2122
232412
3456
78910
1112
1314
1516
1718
1920
2122
2324
執行結果:
這裡寫描述
package main
import (
"fmt"
)[理論]
&符號的意思是對變數取位址,如:變數a的位址是&a
*符號的意思是對指標取值,如:*&a,就是a變數所在位址的值,當然也就是a的值了12
12[簡單的解釋]
*和 & 可以互相抵消,同時注意,*&可以抵消掉,但&*是不可以抵消的
a和*&a是一樣的,都是a的值,值為1 (因為*&互相抵消掉了)
同理,a和*&*&*&*&a是一樣的,都是1 (因為4個*&互相抵消掉了)
Go語言 獲取命令列引數
想知道更多區塊鏈技術,請搜尋 鏈客區塊鏈技術問答社群 鏈客,有問必答!1.flag庫的使用 go語言標準庫提供了用於快迅解析命令列引數的flag包,大致的使用步驟如下 a.通過flag.string flag.bool flag.int 等方式來定義命令列中需要使用的引數。b.在定義完flag後,通...
Go語言 flag Go的命令列引數 命令列處理
1.命令列引數 命令列引數是指定程式執行引數的乙個常見方式。例如,go run hello.go,程式 go 使用了 run 和 hello.go 兩個引數。package main import os import fmt func main 要實驗命令列引數,最好先使用 go build 編譯乙...
命令列引數的作用 go 命令列引數
使用 flag 包獲取命令列引數,控制程式執行 主要函式 flag.string flag.strin ar flag.int flag.intvar flag.float64 flag.float64var flag.bool flag.boolvar p2,p3 p1 命令列引數標誌,flag ...