golang获取命令行参数
来源:互联网 发布:淘宝的规律 编辑:程序博客网 时间:2024/06/08 05:21
对于C\C++,java,或C#程序,我们可以通过入口函数(main函数)直接获取命令行参数:
int main(int argc, char **argv)
{
printf("%s", argv[1]);
return 0;
}
但是,golang的入口函数没有参数,无法直接获取命令行参数:
fun main() {
}
对于golang,获取命令行参数,只能通过golang提供的标准包os,或flag。
flag只能解析标准的命令行参数,例如:
program.exe -h 192.168.1.194 或 program --host 192.168.1.194(用空着将参数名和参数值分开)
program.exe -h=192.168.1.194 或 program --host=192.168.1.194(用"="将参数名和参数值分开)
program.exe -d(不带值表示bool类型,并且置为true,不加-d表示该间值为false)
获取方式如下:
host := flag.String("h", "127.0.0.1", "host")
daemon := flag.Bool("d", false, "daemon")
第一参数表示参数名,第二个参数表示参数值(默认),第三个参数为参数说明(意义描述)
但在使用host和daemon之前,需要调用flag.Parse()来解析命令行,因为前两句仅仅将参数存储地址告诉了flag,需要执行Parse方法之后,参数值才能写入变量
对于非标准命令行格式(如 program.exe /h192.168.1.194),我们只能通过os.Args来获取,然后自己解析
获取方式如下:
hoststr := os.Args[1] (Args[0]为program.exe)
完整源码如下:
package mainimport ("flag""fmt""os")func main() {host := flag.String("h", "127.0.0.1", "host")daemon := flag.Bool("d", false, "daemon")flag.Parse()fmt.Println(*host)fmt.Println(*daemon)fmt.Println(os.Args)}
运行结果:
flagtest.exe -h 192.168.1.194 -d
191.168.1.194
true
[flagtest.exe -h 192.168.1.194 -d]
flagtest.exe -h 192.168.1.194
191.168.1.194
false
[flagtest.exe -h 192.168.1.194]
- golang获取命令行参数
- golang获取命令行参数
- golang获取命令行参数
- golang获取命令行的参数
- GoLang 捕获命令行参数
- GoLang 捕获命令行参数
- golang命令行参数
- golang编程之获取命令行参数及环境变量
- golang flag标准库命令行参数解析
- 命令行参数获取
- MFC获取命令行参数
- MFC 获取命令行参数
- 获取命令行参数
- 获取进程命令行参数
- Python获取命令行参数
- mfc 获取命令行参数
- php命令行获取参数
- python 获取命令行参数
- 11111
- 自定义类加载器[1]:突破父类委托机制
- 自定义VIEW④学习成果
- 黑马74期 Android 安卓视频培训课程
- mysql(基础篇)------命令行操作MySQL的相关语句以及 SQLyon的使用
- golang获取命令行参数
- AngularJS中控制器之间通信方法
- 最详细的 Toolbar 开发实践总结
- windows网络编程 gethostbyname()
- ExcelUtil
- 三块300GSAS硬盘一块硬盘状态灯为红色怎么解决
- 百度地图SDK 手机报错java.lang.UnsatisfiedLinkError: No implementation found for int--binbinyang
- 面试题42:翻转单词顺序,左旋转字符串
- react-native run-android 慢