最近在学习Golang中的flag库的使用,遇到了如下代码:

import "fmt" var infile *string = flag.String("i", "infile", "File contains values for sorting")
var outfile *string = flag.String("o", "outfile", "File to receive sorted values")
var algorithm *string = flag.String("a", "qsort", "Sort algorithm") func main() {     flag.Parse() if infile != nil {fmt.Println("infile =", *infile, "outfile =", *outfile, "algorithm =", *algorithm)}
} 

其中定义的3句接受参数的变量在flag.Prase()之前,所以我就在疑惑这样做为什么可以在调用flag.Prase()之后相应的参数会被解析到呐3个变量之上。
在百度、谷歌搜索了一圈也没啥进展,于是抱着凡事还得靠自己的心态有自习看了一遍代码!
我勒个擦,那3个变量原来是指针类型的变量= =,都怪我第一次没注意,没有留意到那个*的存在。
这样子的我的问题就迎刃而解了,flag.String()方法返回的是保存日后解析出来的对应参数的值的位置、位置、位置,是一个已经分配好的空间,我们可以用infile这个指针变量来接受这个位置,待日后重新进入main入口进呢人执行flag.Parse()函数之后,这3个位置上就出现了我们传入的参数(其实在程序初始化期就有默认值),可以使用*infile来访问具体的内容。
在这里记下来,凡事都要用心,很简单的一件事,有时就会因为一个小小的粗心,造成很大的麻烦= =

GOlang中对flag.Prase()的疑问相关推荐

  1. golang中的flag模块小结

    1. flag常用函数 无论是c语言还是golang语言或是其他语言,启动应用程序时都可以带一些参数,然后系统根据传入的参数进行特点的工作.如:./main -mode online -model b ...

  2. go语言的iota是什么意思_关于Golang中的iota

    快速一览 iota是Golang中提供的一个简化常量和枚举编程的标识符,合理的使用这个标识符可以让代码变得更简洁,省去大量的不必要的代码. 比如下面的这个常量定义 const ( a = 1 b = ...

  3. golang 函数传多个参数_关于Golang中方法参数的传递

    结构体声明 为了说明函数以及方法调用的过程,这里先定义一个struct,在下面的描述中会使用到它. type Person struct { Name string Age uint16 } 普通函数 ...

  4. Linux Signal及Golang中的信号处理

    转载地址:https://colobu.com/2015/10/09/Linux-Signals/ 信号(Signal)是Linux, 类Unix和其它POSIX兼容的操作系统中用来进程间通讯的一种方 ...

  5. Golang中log日志包的使用

    文章目录 1.前言 2.log包介绍 3.log包的使用 3.1 日志输出方法 3.2 自定义创建日志对象 3.3 封装自定义日志包 3.4 log包进一步解析 1.前言 作为后端开发人员,日志文件记 ...

  6. mysql pmt函数怎么用_在Golang中如何正确地使用database/sql包访问数据库

    本文记录了我在实际工作中关于数据库操作上一些小经验,也是新手入门golang时我认为一定会碰到问题,没有什么高大上的东西,所以希望能抛砖引玉,也算是对这个问题的一次总结.其实我也是一个新手,机缘巧合几 ...

  7. Golang中Buffer高效拼接字符串以及自定义线程安全Buffer

    本文原创文章,转载注明出处,博客地址 https://segmentfault.com/u/to... 第一时间看后续精彩文章.觉得好的话,顺手分享到朋友圈吧,感谢支持. Go中可以使用"+ ...

  8. 如何在golang中关闭bufio.reader_Golang 并发模型系列:1. 轻松入门流水线模型

    Go语言中文网,致力于每日分享编码.开源等知识,欢迎关注我,会有意想不到的收获! Golang作为一个实用主义的编程语言,非常注重性能,在语言特性上天然支持并发,它有多种并发模型,通过流水线模型系列文 ...

  9. Golang中的panic和recover(捕获异常)

    Golang中的panic和recover(捕获异常) 参考文章: (1)Golang中的panic和recover(捕获异常) (2)https://www.cnblogs.com/zhzhlong ...

  10. golang 中string和int类型相互转换

    总结了golang中字符串和各种int类型之间的相互转换方式: string转成int: test_int, err := strconv.Atoi(test_string) if err != ni ...

最新文章

  1. 考研计算机385分什么水平,机械专硕初试385分 给学弟学妹分享一下准备的过程(数学二)...
  2. Android新闻案例clientserver达到,完全自己的新闻节目平台
  3. 【ECharts系列|01入门】 从入门到天黑【入门级教程实战】
  4. submlime text写java_在Sublime Text 3中配置编译和运行Java程序
  5. 以太坊同步节点_如何同步以太坊节点而不会犯我的错误
  6. 物联网项目开发工作笔记0001---物联网项目的开发周期,项目管理,厂家合作
  7. excel数据库_EXCEL憋出大招,逆袭大数据的黑马出现了
  8. 《Python学习笔记》——南溪的python编程笔记
  9. A.1.3-控制台输入,类型转换(int.Parse()),格式化输出
  10. Redis 介绍2——常见基本类型
  11. mybatis-generator逆向工程生成boolean字段解决办法
  12. 特斯拉为什么不用激光雷达和高精地图?
  13. APP 自动化框架设计思路分享
  14. php 视频分割,如何把一个视频分成两段或多段 视频切割软件
  15. CATIA二次开发—探讨CATIA单位问题
  16. column函数HTML5,【稻客说函数】COLUMN函数详解,ROW、COLUMN函数制作九九乘法表
  17. 【转】App应用内搜索:移动搜索的新入口
  18. mysql自学教学_MySQL自学篇(三)_MySQL
  19. 单片机外部晶振-XTAL和EXTAL引脚
  20. 手持振弦传感器VH03读数仪测读仪频率仪地质灾害土木工程自动化监测

热门文章

  1. magento 为用户注册增加一个字段
  2. oop-klass_在PHP和MySQL中处理时间和日期-OOP版本
  3. windows 打印机管理机制(任务后台等待机制)
  4. 华为手机电源键不止锁屏关机那么简单!这些操作不能浪费,望周知
  5. 利用adb卸载手机预装软件(系统软件)
  6. mysql修改frm,MySQL 修改.frm文件来更新字段
  7. 电脑计算机主板不启动,电脑主板不能启动的解决方法
  8. uniapp 微信小程序 map获取接口数据后地图标注marker不会渲染显示
  9. 小公司需要企业邮箱么?小企业用什么企业邮箱?
  10. 机智的技术童鞋,你能解开这个贺岁彩蛋吗?