其实足球网站源码分享的问题并不复杂,但是又很多的朋友都不太了解源码,因此呢,今天小编就来为大家分享足球网站源码分享的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
1.介绍
在Go中,如果要接收命令行参数,需要使用flag包进行解析。不同的参数类型可以通过不同的方法接收。
2.参数接受
2.1接受方式
使用flag接收参数,可以由以下三种方式接受:
方式一:flag.Type(name,defaultVal,desc)方式二:flag.TypeVar(&flagVar,name,defaultVal,desc)方式三:flag.Var(&flagVar,name,desc)方式四:flag.Args()方式五:flag.Arg(i)
字段
说明
flag.Type
这里的Type是个抽象的概念,不是具体函数名
name
代表输入参数名
defaultVal
默认值
desc
描述信息
2.2注意事项
上面接收方式一、二、三,都是最后调用flag.Parse(),而方式四和方式五是提前调用flag.Parse()。方式一、二、三传参时,注意布尔类型,尽量设置成-flag=val,否则会影响后面的参数解析。方式四、五不能使用-flag=val这种格式传参。
3.flag.Type
3.1代码
packagemain\nimport(\n&34;\n&34;\n)\nvar(\n//接收字符串\nstr=flag.String(&34;,&34;,&34;)\n//接收整型\nage=flag.Int(&34;,18,&34;)\n//接收布尔型\nsmoking=flag.Bool(&34;,false,&34;)\n)\nfuncmain(){\n//解析\nflag.Parse()\nfmt.Printf(&34;,*str)\nfmt.Printf(&34;,*age)\nfmt.Printf(&34;,*smoking)\n}\n
3.2编译运行
运行(不传参数时)\n?./main\nstr:默认名\nage:18\nsmoking:false\n\n34;flag&34;fmt&34;name&34;默认名字&34;用户名&34;age&34;用户年龄&34;smoking&34;是否吸烟?&34;w&34;体重&34;姓名:%v\\n&34;年龄:%v\\n&34;是否吸烟?:%v\\n&34;体重:%v\\n&编译\n?gobuildmain.go\n\n运行(传参数时)\n?./main-name张三-age22-smoking=true-w=88.9\n姓名:张三\n年龄:22\n是否吸烟?:true\n体重:88.9\n
4.3细节
在传参数过程中,发现布尔型传参如果不设置=,会影响后面的参数接收,具体如下:
布尔型设置=\n?gin-usegit:(dev)?./main-smoking=true-name哈哈\n姓名:哈哈\n年龄:18\n是否吸烟?:true\n体重:60\n
5.flag.Var
通过flag.Var()绑定自定义类型,自定义类型需要实现Value接口(Receives必须为指针)
5.1代码
packagemain\n\nimport(\n&34;\n&34;\n&34;\n)\n//自定义变量,并实现flag.Value接口\ntypeLikes[]string\nfunc(l*Likes)String()string{\nreturnfmt.Sprintf(&34;,*l)\n}\nfunc(l*Likes)Set(sstring)error{\n//分割字符串\nsplit:=strings.Split(s,&34;)\n*l=split\nreturnnil\n}\nfuncmain(){\nvarlikeListLikes\n//接收自定义类型\nflag.Var(&likeList,&34;,&34;)\n//解析\nflag.Parse()\nfmt.Println(likeList)\n}\n
5.2编译运行
运行\n?./main-likes=篮球,足球,游戏\n[篮球足球游戏]\n
6.flag.Args
一次打印出全部的入参,注意入参格式不能是-flag=val格式。
6.1代码
packagemain\nimport(\n&34;\n&34;\n)\nfuncmain(){\n//注意Parse是在Args之前调用\nflag.Parse()\n//一次接收所有的参数\nargs:=flag.Args()\nfmt.Println(args)\n}\n
6.2编译运行
错误入参示例\n?./main-name=张三-age=18-sex=男\nflagprovidedbutnotdefined:-name\nUsageof./main:\n34;flag&34;fmt&34;索引=0,v=%v\\n&34;索引=1,v=%v\\n&34;索引=2,v=%v\\n&编译\n?gobuildmain.go\n#传参\n?./main张三18男\n索引=0,v=张三\n索引=1,v=18\n索引=2,v=男
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!