兄弟连Go语言培训教程读取命令行参数

XDLGo · · 207 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。
  兄弟连教育Go语言+区块链课程是由清华、微软和谷歌名师历时半年时间研发出的独一无二的体系化课程。   目前由于用户普遍对于区块链认知不足,加之专业人才的短缺及其高薪诱惑力,导致市场上衍生出多家训机构。兄弟连教育区块链学院院长尹正表示,面对鱼龙混杂的培训市场,消费者需仔细辨别。 命令行参数概述 没有GUI界面的应用程序怎么接收用户的输入呢 除了运行时接收标准用户输入以外,主要就是通过命令行参数了 Go语言提供了读取一揽子所有命令行字符串、读取关键字参数两种方式 其中按名称读取关键字参数是主要的用法,需要大家牢牢掌握 方式1:读取所有命令行字符串 func demo51() { //os.Args中封装了用户启动当前程序所使用的所有字符串 fmt.Println(os.Args) //遍历和处理用户在命令行中输入的每一个字符串 for index, value := range os.Args { fmt.Println(index, value) } } 方式2:使用系统提供的参数地址 func demo52() { //05xxx.exe -name bill -age 60 -money 1234567890.12 -isstupid true //nme=参数名字,value=参数的默认值,usage=参数的说明信息,返回值=存储了【用户输入的参数】的内存地址 namePtr := flag.String("name", "无名氏", "用户名") agePtr := flag.Int("age", 0, "年龄") moneyPtr := flag.Float64("money", 0, "财富") isstupidPtr := flag.Bool("isstupid", true, "是否愚蠢") //解析参数 flag.Parse() //从上边返回的地址中读取【用户输入的参数】 fmt.Println(*namePtr, *agePtr, *moneyPtr, *isstupidPtr) } 方式3:使用自定义的参数地址 func demo53() { //05xxx.exe -name bill -age 60 -money 1234567890.12 -isstupid true //开辟4块内存,用于存储cmd-line参数 var name string var age int var money float64 var isstupid bool fmt.Println(&name, &age, &money, &isstupid) //分别从命令行读取name,age,money,isstupid参数,存入上边开辟的内存地址中 flag.StringVar(&name, "name", "无名氏", "用户名") flag.IntVar(&age, "age", 0, "年龄") flag.Float64Var(&money, "money", 0, "财富") flag.BoolVar(&isstupid, "isstupid", true, "是否愚蠢") //解析命令行参数 flag.Parse() //得到结果 fmt.Println(name, age, money, isstupid) } 人格测试小游戏  根据用户输入的姓名,年龄,财富,判断用户的人格 func main() { name, age, money, isstupid := getUserInfoFromCmdline() //平均水平:以【40岁有50万标准】=1.0 const k = 1 / (5.0e5 / 40) //成功程度,与money成正比,与age成反比,算出成功指数 successIndex := k * money / float64(age) //富有且认为自己愚蠢的,加分,贫穷且认为聪明的减分 if money > 1.0e6 && isstupid { successIndex *= 1.1 } if money < 1.0e4 && !isstupid { successIndex *= 0.9 } //得到评语 var remark string if successIndex > 1 { remark = "棒棒的" } else { remark = "呵呵" } //姓名用于输出报告 fmt.Printf("尊敬的%s阁下:你的成功指数是%.2f,%s\n", name, successIndex, remark) } //从命令行读取用户信息func getUserInfoFromCmdline() (name string, age int, money float64, isstupid bool) { //05xxx.e -name bill -age 60 -money 1234567890.12 -isstupid true //nme=参数名字,value=参数的默认值,usage=参数的说明信息,返回值=存储了【用户输入的参数】的内存地址 namePtr := flag.String("name", "无名氏", "用户名") agePtr := flag.Int("age", 0, "年龄") moneyPtr := flag.Float64("money", 0, "财富") isstupidPtr := flag.Bool("isstupid", true, "是否愚蠢") //解析参数 flag.Parse() //从上边返回的地址中读取【用户输入的参数】 fmt.Println(*namePtr, *agePtr, *moneyPtr, *isstupidPtr) return *namePtr, *agePtr, *moneyPtr, *isstupidPtr } 更多区块链视频教程/源码/课件/学习资料-企鹅QUN:591229276

入群交流(和以上内容无关):加入Go大咖交流群,免费领全套学习资料或添加微信:muxilin131420 备注:入群;或加QQ群:729884609

207 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传