最近在学习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. OpenCV学习(4) Mat的基本操作(1)
  2. 前端答题小游戏_这是什么神奇操作!两个前端一周上线一款联机小游戏
  3. MVC中的ActionResult
  4. 微软官方python教程下载-微软官方上线 Python 教程
  5. Learning Rate--学习率的选择(to be continued)
  6. 基于nanopi的即时通讯系统
  7. CoolQ/DingTalk 实现CI/CD消息推送到群
  8. 简述导线平差计算的五个步骤_RTK技术导线测量和全站仪导线测量有什么区别?...
  9. 【CDH】cdh搭建遇到的坑和解决过程
  10. hdu 3065 病毒侵袭持续中
  11. 游戏中按概率播放某个音效简单c++实现
  12. cadence17.4 下载安装
  13. 计算机械加工工时都需要,机械加工工时(工时定额)计算软件
  14. ssr提示服务器名无效_联想服务器在UEFI HII界面中配置阵列的基本操作
  15. (计算机组成原理)第三章存储系统-第六节2:页式/段式虚拟存储器
  16. html逐字显示并停止,Pr字幕如何让他逐字出现逐字消失?
  17. STN_空间变换网络
  18. java实现将PDF文件拆分成图片
  19. Xcode 6系列百度网盘地址,包含Xcode 6.2以及Xcode 6.3
  20. 驾驭你的“职场布朗运动”---转载

热门文章

  1. 20、ZigBee 开发教程之基础篇—HC-SR501 人体红外传感器
  2. 大数据技术方面需要哪些支持
  3. python程序设计基础上机题5.16-----5.26(2)
  4. pqi 更方便的使用pip源
  5. 树莓派3代ROS系统镜像文件下载链接
  6. 【BMS软开系列】1、 ISO 26262功能安全标准 (一)
  7. python对数正态分布函数_python生成具有上下限的截断对数正态分布
  8. 六西格玛dfss_六西格玛设计DFSS.pdf
  9. Java将毫秒(时间戳)转时分秒格式或者年月日
  10. 计算机启动修复取消,w7电脑启动修复无法进入操作系统怎么解决 w7系统取消启动修复的方法...