标签:pre 命令 参数 import lse lag rgs host 表示
package main
import (
"flag"
"fmt"
)
//**Demo1**:
func main() {
t1 := flag.Int("w", 0, "demo test") //int变量
t2 := flag.String("a", "Hello", "demo test") //string变量
flag.Parse() //Parse()代表我们开始解析参数,在Parse以后,我们是不允许再添加参数的
fmt.Println("t1 is ", *t1) //*t1使用指针,表示标签解析的结果
fmt.Println("t2 is ", *t2)
fmt.Printf("There is %d non-flag\n", flag.NArg()) //NArg()用来输出non-flag参数的个数
for i, arg := range flag.Args() { //循环获取参数
fmt.Printf("%d is %s\n", i+1, arg)
}
}
//**Demo2**:
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, "duan端口号,默认3306")
//【必须调用】从arguments中解析注册的flag
flag.Parse()
// 输出结果
fmt.Printf("\n user=%v \n pwd=%v \n host=%v \n port=%v \n", user, pwd, host, port)
}
//**Demo3**:
func main() {
backupdir := flag.String("b", "/home/default_dir", "backup path")
debugmode := flag.Bool("d", false, "debug mode")
flag.Parse()
fmt.Println("backupdir: ", *backupdir)
fmt.Println("debugmode: ", *debugmode)
}
/**
启动命令:go run main.go -b /home/backup
输出结果:
backup_dir: /home/backup // 因为指定了路径,所以覆盖了默认路径
debug_mode: false // 启动命令里不带 -d 参数,所以启用默认值
*/
标签:pre 命令 参数 import lse lag rgs host 表示
原文地址:https://www.cnblogs.com/kylingx/p/13278994.html