一、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)
}

