Golang 获取命令行参数
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粉丝\r\n", *name, *age, haveDescription)
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfibhi
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01