![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbwxCdh1mcvZ2LcV2Zh1Wa9M3clN2byBXLzN3btg3P3p1dw1GTpZVbNhmSX9UaGR1T4l0RPhXRq5UewkWT6lkaOdXVU9Ee4k3YsR2VZRHbyg1aGJjYzJEWkZHOXFWdVhUY6VzVZBHctxkeWJjWoFzVhRXUXlld4d0YxkTeMZTTINGMShUYvwlbj5yZtlmbkN3YuQnclZnbvN2Ztl2Lc9CX6MHc0RHaiojIsJye.jpg)
使用go語言裡面的 flag來解析指令行參數,代碼實作還是簡潔,簡單,但據說實際開發經常會用它來解析指令行參數. 下面先把用到flag包下面的方法給給位學習的朋友貼出來,同時也是自我鞏固如何檢視封包件,方法…
Golang中文版文檔位址: https://studygolang.com/pkgdoc
列重點
部分代碼說明:
flag.StringVar(&user, "u", "", "使用者名預設為空")
flag.StringVar(&pwd, "pwd", "", "密碼預設為空")
flag.StringVar(&host, "h", "localhost", "主機名預設為 localhost")
flag.IntVar(&port, "port", 3306, "端口号預設為3306")
這其實就對應指令行: test.exe -u myname -pwd 123456 -h 127.0.0.5 -port 8080
通過以上代碼,使用者在指令行輸入參數是無需按照前後順序輸入,程式同樣可以判斷,解析使用者的資訊.
- func StringVar
Golang學習筆記 - flag解析指令行參數 - func IntVar
Golang學習筆記 - flag解析指令行參數 - flag.Parse() * 必須調用flag.Parse()方法進行轉換*
Golang學習筆記 - flag解析指令行參數
上代碼
package main
import (
"flag"
"fmt"
)
func main() {
//定義一些變量用于接收指令行輸入的參數值
var user string
var pwd string
var host string
var port int
//&user 就是用來接收指令行中輸入的 -u 後面的參數值
// "u" 就是指令行中 -u 指定參數
// "",預設值
//"使用者名預設為空", 預設
flag.StringVar(&user, "u", "", "使用者名預設為空")
flag.StringVar(&pwd, "pwd", "", "密碼預設為空")
flag.StringVar(&host, "h", "localhost", "主機名預設為 localhost")
flag.IntVar(&port, "port", 3306, "端口号預設為3306")
// 必須調用flag.Parse()方法進行轉換
flag.Parse()
//fmt輸出結果
fmt.Printf(" user = %v\n pwd4 = %v\n host = %v\n port = %v\n",
user, pwd, host, port)
}
看結果
1, 先build一個test.exe可執行檔案 go build -o test.exe main.go
2, 運作test.exe 并指派,例如: test.exe -u myname -pwd 123456 -h 127.0.0.5 -port 8080
3,結果呈現,來貼一張圖
請注意
本文部分内容,圖檔,及視訊源于網絡轉載, 不以盈利為目的,不構成商業目的使用, 僅用于學習交流…相關版權歸原作者所有。如有異議,請聯系我 [email protected] [麥特matt]
将在第一時間作出相關處理.