GOlang中对flag.Prase()的疑问
来源:互联网 发布:生命一个数组 编辑:程序博客网 时间:2024/05/17 19:59
最近在学习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来访问具体的内容。
在这里记下来,凡事都要用心,很简单的一件事,有时就会因为一个小小的粗心,造成很大的麻烦= =
2 0
- GOlang中对flag.Prase()的疑问
- 对SharpMap的疑问
- golang flag 用法示例
- golang flag 加强版
- 对MYSQL查询中有疑问的数据进行编码
- Creating a Phong Specular type中对插图的疑问
- 对的ADO的疑问
- 对这个blog的疑问
- 对Hibernate效率的疑问
- 对jsf的一点疑问
- 对输出流的疑问
- 自己对BFC的疑问
- 对技术的一些疑问
- firefox中Date.prase()解析 'Y-m-d'格式的时间, 返回NaN的问题
- 对Android源码中常见的一些flag的运算的理解
- 对Android源码中常见的一些flag的运算的理解
- Golang学习笔记--flag包
- cmdline-扩展golang std.flag
- 百度百科:Java内部类
- TYVJ-P1005 01背包问题
- VTK修炼之道44:图形进阶_vtkPolyData数据源讨论与数据创建
- JDBC设置事务的隔离级别和转账案例
- Android环境配置
- GOlang中对flag.Prase()的疑问
- LeetCode 421 Maximum XOR of Two Numbers in an Array 解题报告
- DDMS出现:远程主机强迫关闭了一个现有的连接的解决办法
- session v.s. connection of MySQL
- UVA10391:Compound Words(复合词)
- Pylearn2的使用简介
- 阶乘和阶乘逆元
- JPA Entity的生命周期
- Altium Designer13原理图中元件垂直、水平镜像翻转