概述
文章目录
- os.Args
- flag.IntVar系列
- flag.Int系列
os.Args
os.Args 返回字符切片,第一个元素是代码编译后后的位置,其余命令行参数排排坐
package main
import (
"fmt"
"os"
)
func main() {
//os.Args 返回字符切片,第一个元素是代码编译后后的位置,其余命令行参数排排坐
fmt.Println(os.Args)
}
xieruixiangdeMacBook-Pro:JSF xieruixiang$ go run main.go -p=a b c d e f g
[/var/folders/vg/t7pd86zd7wj3p0162861ggyh0000gn/T/go-build3676278252/b001/exe/main -p=a b c d e f g]
flag.IntVar系列
1.flag.IntVar(p1,p2,p3,p4) 接受命令行参数(int) p1:接受参数值的指针*int p2:命令行参数名 p3:默认值(int) p4:说明
2.flag.BoolVar(p1,p2,p3,p4) 接受命令行参数(bool) p1:接受参数值的指针*bool p2:命令行参数名 p3:默认值(bool) p4:说明
3.flag.StringVar(p1,p2,p3,p4) 接受命令行参数(string) p1:接受参数值的指针*string p2:命令行参数名 p3:默认值(string) p4:说明
package main
import (
"flag"
"fmt"
)
func main() {
var age int
var name string
var have bool
// flag.IntVar(p1,p2,p3,p4) 接受命令行参数(int) p1:接受参数值的指针*int p2:命令行参数名 p3:默认值(int) p4:说明
flag.IntVar(&age, "A", 20, "年龄:age")
// flag.BoolVar(p1,p2,p3,p4) 接受命令行参数(bool) p1:接受参数值的指针*bool p2:命令行参数名 p3:默认值(bool) p4:说明
flag.BoolVar(&have, "HH", false, "需要粉丝不:have")
// flag.StringVar(p1,p2,p3,p4) 接受命令行参数(string) p1:接受参数值的指针*string p2:命令行参数名 p3:默认值(string) p4:说明
flag.StringVar(&name, "N", "佚名", "名称:name")
//还有其它的自己去看,比如:flag.Int64Var,flag.Float64Var......
flag.Parse()
fmt.Println(have)
haveDescription := "不需要"
if have {
haveDescription = "需要"
}
// go run main.go -N=xie -A=28 -HH=true
// go run main.go -N xie -A 28 -H true
// go run main.go -N xie -A 28 -H false
fmt.Printf("我叫%s,今年%d岁,我%s粉丝", name, age, haveDescription)
}
4.flag.Parse() 参数值才会写入到指针中
5.命令行参数通过-“key”=“value"携带,“=”可以省略
xieruixiangdeMacBook-Pro:JSF xieruixiang$ go run main.go -name=xie -age=28 -have=true
我叫xie,今年28岁,我需要粉丝
#如果是bool类型且省略“=”,那么只要带上 -key 则为true
xieruixiang$ go run main.go -name xie -age 28 -have false
我叫xie,今年28岁,我需要粉丝
xieruixiangdeMacBook-Pro:JSF
xieruixiangdeMacBook-Pro:JSF xieruixiang$ go run main.go -name xie -age 28 -have=false
我叫xie,今年28岁,我不需要粉丝
6.说明可以通过 -h 来展示
xieruixiangdeMacBook-Pro:JSF xieruixiang$ go run main.go -h
Usage of /var/folders/vg/t7pd86zd7wj3p0162861ggyh0000gn/T/go-build1151936869/b001/exe/main:
-age int
年龄:age (default 20)
-have
需要粉丝不:have
-name string
名称:name (default "佚名")
flag.Int系列
flag.Int系列(a)和flag.IntVar系列(b)差不多, a省略了第一个接受参数的指针(与b差异),返回指针,后续通过指针获取具体的参数值
package main
import (
"flag"
"fmt"
)
func main() {
//flag.Int系列(a)和flag.IntVar系列(b)差不多, a 省略了第一个接受参数的指针(与b差异),返回指针,后续通过指针获取具体的参数值
age := flag.Int("age", 20, "年龄:age")
have := flag.Bool("have", false, "需要粉丝不:have")
name := flag.String("name", "佚名", "名称:name")
flag.Parse()
haveDescription := "不需要"
//指针获取参数值
if *have {
haveDescription = "需要"
}
// go run main.go -name=xie -age=28 -have=true
// go run main.go -name xie -age 28 -have true
//指针获取参数的值
fmt.Printf("我叫%s,今年%d岁,我%s粉丝rn", *name, *age, haveDescription)
}
最后
以上就是活泼砖头为你收集整理的Golang 获取命令行参数的全部内容,希望文章能够帮你解决Golang 获取命令行参数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复