美文网首页
05-命令行参数

05-命令行参数

作者: 喝酸奶要舔盖__ | 来源:发表于2018-09-20 14:15 被阅读0次

通过os包获取命令行参数

  • 获取方法
    • 导入os包
    • 然后通过os包的Args属性获取命令行参数
    package main
    
    import (
      "os"
    )
    
    func main() {
    fmt.Println(os.Args[0])
    fmt.Println(os.Args[1])
    fmt.Println(os.Args[2])
    fmt.Printf("%T\n", os.Args[0]) //string
    fmt.Printf("%T\n", os.Args[1]) //string
    fmt.Printf("%T\n", os.Args[2]) //string
    }
    
  • os包方法弊端
    • 如果用户少传了参数就会报错
    • 无论用户传入的是什么类型,最终获取到的都是字符类型
    • 传递参数的时候, 必须按照业务逻辑的顺序来传递, 传递的顺序不能被打乱

通过flag包获取命令行输入

  • func StringVar(p *string, name string, value string, usage string)
    注意点: 无论传入什么类型的数据,返回的都是string类型
    //第一个参数: 把接收到的数据保存到哪
    //第二个参数: 用于接收的字段名称,通过-指定的名称来输入
    //第三个参数: 没有传入参数时候的默认值
    //第四个参数: 用户输入--help时候提示的信息
    var name string
    flag.StringVar(&name,"name","默认名称","接收用户姓名")
    var age string
    flag.StringVar(&age,"age","-1","接收用户年龄")

    //通过flag包接收用户输出的参数,还需要将接收到的参数注册到命令行中
    flag.Parse()
    fmt.Println("name = ", name)
    fmt.Printf("%T\n", name)
    fmt.Println("age = ", age)
    fmt.Printf("%T\n", age)
  • func String(name string, value string, usage string) *string
    注意点: 无论传入什么类型的数据,返回的都是string类型
    这个函数需要定义一个字符串指针来接收返回值
    var name *string = flag.String("name", "默认名称", "接收用户姓名")
    var age  *string = flag.String("age", "0", "接收用户年龄")

    //注册命令行参数
    flag.Parse()

    fmt.Println("name = ", *name)
    fmt.Println("age = ", *age)
    fmt.Printf("%T\n", *name)
    fmt.Printf("%T\n", *age)
  • func Int64(name string, value int64, usage string) *int64
    这个函数需要定义一个int64指针来接收返回值
  • func Float64(name string, value float64, usage string) *float64
    这个函数需要定义一个float64指针来接收返回值
    var name string
    flag.StringVar(&name,"name","默认名字","接收用户名字")
    var age *int64 = flag.Int64("age",int64(1),"接收用户年龄")
    var height *float64 = flag.Float64("height",float64(2),"接收用户身高")
    //注册命令行函数
    flag.Parse()
    fmt.Println("name = ", name)
    fmt.Println("age = ", *age)
    fmt.Println("height = ", *height)
    fmt.Printf("%T\n", name)
    fmt.Printf("%T\n", *age)
    fmt.Printf("%T\n", *height)

相关文章

  • 05-命令行参数

    通过os包获取命令行参数 获取方法导入os包然后通过os包的Args属性获取命令行参数package mainim...

  • 九、处理用户输入

    简单目录 1.命令行参数 2.处理命令行选项和命令行参数参数 3.read命令获取用户输入 1.命令行参数 在命令...

  • 常用的npm包

    命令行参数处理 nodejs 脚本,命令行参数处理,接受参数parse 可以使用 minimist 参数提示 co...

  • 特殊变量列表

    特殊变量列表 命令行参数 运行脚本时传递给脚本的参数称为命令行参数。命令行参数用 $n 表示,例如,$1 表示第一...

  • Java 命令行参数解析类库

    命令行参数解析类库1命令行参数解析类库2命令行参数解析类库3 JArgsJakarta Commons CLITE...

  • pflag命令行参数

    简介 本文讲解如何在go程序中使用命令行参数包pflag来获取gong语言编写的命令行程序的传入参数。 命令行参数...

  • 第14章:处理用户输入

    [TOC] #1. 命令行参数 向shell脚本传递数据的最基本方法是使用命令行参数。命令行参数允许在运行脚本时向...

  • flag

    编写命令行程序时会使用不同的启动参数(命令行参数)来控制程序的行为 Go编写命令行程序时,获取并解析命令行参数的方...

  • 2.2.7 shell位置参数与特殊变量

    命令行参数

  • shell环境变量一览

    变量说明*含有所有命令行参数(以单个文本值的形式)@含有所有命令行参数(以多个文本值的形式)#命令行参数数目?最近...

网友评论

      本文标题:05-命令行参数

      本文链接:https://www.haomeiwen.com/subject/obtnnftx.html