GOlang中对flag.Prase()的疑问
最近在学习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()的疑问相关推荐
- golang中的flag模块小结
1. flag常用函数 无论是c语言还是golang语言或是其他语言,启动应用程序时都可以带一些参数,然后系统根据传入的参数进行特点的工作.如:./main -mode online -model b ...
- go语言的iota是什么意思_关于Golang中的iota
快速一览 iota是Golang中提供的一个简化常量和枚举编程的标识符,合理的使用这个标识符可以让代码变得更简洁,省去大量的不必要的代码. 比如下面的这个常量定义 const ( a = 1 b = ...
- golang 函数传多个参数_关于Golang中方法参数的传递
结构体声明 为了说明函数以及方法调用的过程,这里先定义一个struct,在下面的描述中会使用到它. type Person struct { Name string Age uint16 } 普通函数 ...
- Linux Signal及Golang中的信号处理
转载地址:https://colobu.com/2015/10/09/Linux-Signals/ 信号(Signal)是Linux, 类Unix和其它POSIX兼容的操作系统中用来进程间通讯的一种方 ...
- Golang中log日志包的使用
文章目录 1.前言 2.log包介绍 3.log包的使用 3.1 日志输出方法 3.2 自定义创建日志对象 3.3 封装自定义日志包 3.4 log包进一步解析 1.前言 作为后端开发人员,日志文件记 ...
- mysql pmt函数怎么用_在Golang中如何正确地使用database/sql包访问数据库
本文记录了我在实际工作中关于数据库操作上一些小经验,也是新手入门golang时我认为一定会碰到问题,没有什么高大上的东西,所以希望能抛砖引玉,也算是对这个问题的一次总结.其实我也是一个新手,机缘巧合几 ...
- Golang中Buffer高效拼接字符串以及自定义线程安全Buffer
本文原创文章,转载注明出处,博客地址 https://segmentfault.com/u/to... 第一时间看后续精彩文章.觉得好的话,顺手分享到朋友圈吧,感谢支持. Go中可以使用"+ ...
- 如何在golang中关闭bufio.reader_Golang 并发模型系列:1. 轻松入门流水线模型
Go语言中文网,致力于每日分享编码.开源等知识,欢迎关注我,会有意想不到的收获! Golang作为一个实用主义的编程语言,非常注重性能,在语言特性上天然支持并发,它有多种并发模型,通过流水线模型系列文 ...
- Golang中的panic和recover(捕获异常)
Golang中的panic和recover(捕获异常) 参考文章: (1)Golang中的panic和recover(捕获异常) (2)https://www.cnblogs.com/zhzhlong ...
- golang 中string和int类型相互转换
总结了golang中字符串和各种int类型之间的相互转换方式: string转成int: test_int, err := strconv.Atoi(test_string) if err != ni ...
最新文章
- OpenCV学习(4) Mat的基本操作(1)
- 前端答题小游戏_这是什么神奇操作!两个前端一周上线一款联机小游戏
- MVC中的ActionResult
- 微软官方python教程下载-微软官方上线 Python 教程
- Learning Rate--学习率的选择(to be continued)
- 基于nanopi的即时通讯系统
- CoolQ/DingTalk 实现CI/CD消息推送到群
- 简述导线平差计算的五个步骤_RTK技术导线测量和全站仪导线测量有什么区别?...
- 【CDH】cdh搭建遇到的坑和解决过程
- hdu 3065 病毒侵袭持续中
- 游戏中按概率播放某个音效简单c++实现
- cadence17.4 下载安装
- 计算机械加工工时都需要,机械加工工时(工时定额)计算软件
- ssr提示服务器名无效_联想服务器在UEFI HII界面中配置阵列的基本操作
- (计算机组成原理)第三章存储系统-第六节2:页式/段式虚拟存储器
- html逐字显示并停止,Pr字幕如何让他逐字出现逐字消失?
- STN_空间变换网络
- java实现将PDF文件拆分成图片
- Xcode 6系列百度网盘地址,包含Xcode 6.2以及Xcode 6.3
- 驾驭你的“职场布朗运动”---转载
热门文章
- 20、ZigBee 开发教程之基础篇—HC-SR501 人体红外传感器
- 大数据技术方面需要哪些支持
- python程序设计基础上机题5.16-----5.26(2)
- pqi 更方便的使用pip源
- 树莓派3代ROS系统镜像文件下载链接
- 【BMS软开系列】1、 ISO 26262功能安全标准 (一)
- python对数正态分布函数_python生成具有上下限的截断对数正态分布
- 六西格玛dfss_六西格玛设计DFSS.pdf
- Java将毫秒(时间戳)转时分秒格式或者年月日
- 计算机启动修复取消,w7电脑启动修复无法进入操作系统怎么解决 w7系统取消启动修复的方法...