GO语言小锤硬磕六.获取命令行参数

1.go命令行操作

go version 查看当前安装的go版本

go env 查看当前go的环境变量

go fmt 格式化代码

go run 命令文件  编译并运行go程序

        package main包中包含main函数的文件,被称为命令文件

        其他包中为文件,我们称为源码文件

go build 编译检查

        非命令文件执行编译检查,不会产生文件

        命令文件编译检查,在当前目录下生成一个可执行文件

        可以指定文件名编译: go build 文件名

go install 安装程序

        非命令文件执行编译检查,生成.a结尾的包,放到$GOPATH/pkg

        命令文件会执行编译检查,生成可执行文件,放到$GOPATH/bin

2.通过os包获取命令行参数

package main
import(
   "fmt"
    "os"
)
func main(){
    //1.获取参入参数个数
    num := len(os.Args)
    //2.打印所有获取到的参数
    for i:=0; i< num;i++{
        fmt.Println(os.Args[i])//拿到的都是字符串类型
    }
}
//执行命令  main.exe xiaoming 22
//打印
//main.exe 默认参数
//xiaoming 传入参数1
//22       传入参数2

3.通过flag包获取命令行

写法1

package main
import(
    "flag"
    "fmt"
)
func main(){
    /*
    flag.xxx(参数名称,默认值,说明)
    */
    //1.设置命令行参数
    name :=flag.String("name","xiaoming","请输入姓名")//指针
    age:=flag.Int("age",33,"请输入人的年龄") //指针
    //2.将明亮航参数解析到注册的参数
    flag.Parse()
    //3.使用命令行参数。注意flag对应的方法返回的都是指针类型
    fmt.Println("name =",*name)
    fmt.Println("age =",*age)
}
//执行 main.exe  
//打印默认值
//name = xiaoming
//age = 33
//执行 main.exe -name=xx -age=11
//打印默认值
//name = xx
//age = 11

写法2

package main
import(
    "flag"
    "fmt"
)
func main(){
    //1.定义变量,保存值
    var name string
    var age int
    //2.设置命令行参数
    flag.StringVar(&name,"name","xiaoming","请输入人的姓名")
    flag.IntVar(&age,"age",33,"请输入人的年龄")
    //3.注册解析命令行参数
    flag.Parse()
    //4.使用命令行参数
    fmt.Println("name = ", name)
    fmt.Println(age =", age)

}

os获取参数和flag获取参数对比

        1.虽然os可以获取参数,但是如果代码中定义了获取参数,但是执行命令时没传会报错,flag有默认值不传会使用默认值

        2.os需要严格按照顺序,flag不需要按顺序并且指定参数名和类型

总结flag 更容易使用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值