Go:獲取命令行參數


一、Low B 方式

package main

import (
	"fmt"
	"os"
)

func main() {
	fmt.Println("命令行的參數有", len(os.Args))
	// 遍歷 os.Args 切片,就可以得到所有的命令行輸入參數值
	for i, v := range os.Args {
		fmt.Printf("args[%v]=%v\n", i, v)
	}
}

使用 go build -o test.exe main.go 命令生成 test.exe 可執行文件,再使用 test.exe 輸入如下內容:

二、高級方式

如像 mysql 那樣:mysql -u root -p 123456,可以指定輸入內容,輸入順序可變。

flag包實現了命令行參數的解析:

package main

import (
	"flag"
	"fmt"
)

func main() {
	// 定義幾個變量,用於接收命令行的參數值
	var user 		string
	var password 	string
	var host 		string
	var port 		int
	// &user 就是接收命令行中輸入 -u 后面的參數值,其他同理
	flag.StringVar(&user, "u", "root", "賬號,默認為root")
	flag.StringVar(&password, "p", "", "密碼,默認為空")
	flag.StringVar(&host, "h", "localhost", "主機名,默認為localhost")
	flag.IntVar(&port, "P", 3306, "端口號,默認為3306")
	// 解析命令行參數寫入注冊的flag里
	flag.Parse()
	// 輸出結果
	fmt.Printf("user:%v\npassword:%v\nhost:%v\nport:%v\n",
		user, password, host, port)
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM