【Go语言学习】——Flag包

Flag包


参考博客

  • os.Args

    可以获取命令行中的多个参数形成一个[]string,按照下标可以获取对应位置的值

    package main
    
    import (
    	"fmt"
    	"os"
    )
    
    // os.Args 获取命令行参数
    
    func main() {
    	fmt.Println(os.Args)
    	fmt.Printf("%T\n", os.Args)
    	// 类型就是[]string,所以可以加下标来获取对应的参数
    	fmt.Println(os.Args[1], os.Args[2])
    }
    
  • Flag包

    package main
    
    import (
    	"flag"
    	"fmt"
    	"time"
    )
    
    // flag获取命令行参数
    
    func main() {
    	// 使用flag.Type创建一个标志位参数
    	// flag.Type(flag名, 默认值, 帮助信息)*Type,返回值是地址,帮助信息会在-help时展示
    	name := flag.String("name", "Morain", "请输入名字")
    	age := flag.Int("age", 18, "请输入年龄")
    	married := flag.Bool("married", false, "结婚了吗")
    	cTime := flag.Duration("ct", time.Second, "结婚多久")
    	// 获取用户参数,用法就是在命令后面用-flag名(=可省略)输入信息来为参数赋值
    	flag.Parse()
    	// 打印对应地址的值
    	fmt.Println(*name)
    	fmt.Println(*age)
    	fmt.Println(*married)
    	// 用户输入参数时分别用ns”、”us” /“µs”、”ms”、”s”、”m”、”h”为单位,转换为duration类型
    	fmt.Println(*cTime)
    
    	// 使用Typevar创造标志位参数
    	// var name string
    	// flag.StringVar(&name, "name", "Morain", "请输入名字")
    	// // 解析用户的参数,支持-flag xxx (使用空格,一个-符号),--flag xxx (使用空格,两个-符号)
    	// // -flag=xxx (使用等号,一个-符号)--flag=xxx (使用等号,两个-符号)
    	// flag.Parse()
    	// // 打印对应地址的值
    	// fmt.Println(name)
    
    	// flag其他函数
    	// 返回命令行后的除了标志位开头的其他参数
    	fmt.Println(flag.Args())
    	// 返回命令行中其他参数的个数
    	fmt.Println(flag.NArg())
    	// 返回命令行中标志位开头的命令行参数的个数
    	fmt.Println(flag.NFlag())
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值