Go 接收命令行参数
在 Go 语言中,可以使用标准库中的 os 包和 flag 包来接收和处理命令行参数。
使用 os 包
os.Args 是一个字符串切片,其中第一个元素是程序的名称,后续元素是传递给程序的命令行参数。
示例代码
package main
import (
"fmt"
"os"
)
func main() {
// os.Args[0] 是程序的名称
// os.Args[1:] 是传递给程序的参数
args := os.Args[1:]
if len(args) == 0 {
fmt.Println("No arguments provided.")
return
}
fmt.Println("Received arguments:")
for i, arg := range args {
fmt.Printf("Argument %d: %s\n", i+1, arg)
}
}
运行方法
假设保存为 main.go,可以通过以下命令运行:
go run main.go arg1 arg2 arg3
输出:
Received arguments:
Argument 1: arg1
Argument 2: arg2
Argument 3: arg3
使用 flag 包
flag 包提供了更强大的命令行参数解析功能,支持带有默认值和帮助信息的参数。
示例代码
package main
import (
"flag"
"fmt"
)
func main() {
// 定义命令行参数(参数名,默认值,参数说明)
name := flag.String("name", "World", "a name to say hello to")
age := flag.Int("age", 0, "your age")
// 解析命令行参数
flag.Parse()
// 使用命令行参数
fmt.Printf("Hello, %s!\n", *name)
if *age > 0 {
fmt.Printf("You are %d years old.\n", *age)
}
// 打印剩余的非标志参数
fmt.Println("Remaining arguments:", flag.Args())
}
运行方法
假设保存为 main.go,可以通过以下命令运行:
go run main.go -name Alice -age 30 additional_arg1 additional_arg2
输出:
Hello, Alice!
You are 30 years old.
Remaining arguments: [additional_arg1 additional_arg2]
说明
- 定义参数:使用
flag.String、flag.Int等函数定义命令行参数。 - 解析参数:使用
flag.Parse()解析命令行参数。 - 使用参数:通过解引用指针(如
*name)来获取参数的值。 - 剩余参数:可以使用
flag.Args()获取解析后的剩余非标志参数。
Go 接收命令行参数的更多相关文章
- C#_WinForm接收命令行参数
C#_WinForm接收命令行参数 2014-08-03 10:17 534人阅读 评论(0) 收藏 举报 首先,我要仔细的声明下,本文讲的是接受命令行参数,让程序启动.而不是启动那个黑黑的框...我 ...
- 自定义实现InputFormat、OutputFormat、输出到多个文件目录中去、hadoop1.x api写单词计数的例子、运行时接收命令行参数,代码例子
一:自定义实现InputFormat *数据源来自于内存 *1.InputFormat是用于处理各种数据源的,下面是实现InputFormat,数据源是来自于内存. *1.1 在程序的job.setI ...
- (转)C#_WinForm接收命令行参数
本文转载自:http://blog.csdn.net/lysc_forever/article/details/38356007 首先,我要仔细的声明下,本文讲的是接受命令行参数,让程序启动.而不是启 ...
- Spring Boot程序接收命令行参数
Spring Boot程序接收命令行参数 输入一行,回车,触发一次.如果想要调用service层,也是可以,能调用service层,就可以做很多事,触发一次就好比调用了一次http接口一样 packa ...
- 让browserify接收命令行参数,在打包时parse yml配置文件
功能需求: 1用browserify把各种js打包成浏览器端的1个bundle.js,含有yml配置文件 约束: 1 yml配置文件不在当前工程里(现在还不知道放哪里,以后也会变),希望在打包时,用命 ...
- MFC接收命令行参数的三种方法
方法一: CString sCmdline = ::GetCommandLine(); AfxMessageBox(sCmdline); 将获取到 "C:\test\app.exe -1 - ...
- Python命令行参数sys.argv[]
学习C语言的时候就没弄明白命令行参数的用法,在学习Pyton 的时候又遇到了命令行参数,在这里稍微学习了一下,稍微明白了一些在这里做个记录方便后面回顾复习. Sys.argv[]是用来获取命令行参数的 ...
- python命令行参数解析模块argparse和docopt
http://blog.csdn.net/pipisorry/article/details/53046471 还有其他两个模块实现这一功能,getopt(等同于C语言中的getopt())和弃用的o ...
- Golang: 打印命令行参数
记得最早在学校机房学习 Java 时,照着书上的例子,写一个最简单 main 方法,当程序运行并在屏幕上打印出 hello world 时,内心竟有种莫名的激动,相信很多人都有这种经历吧. 不管学什么 ...
- 在 Perl 中使用 Getopt::Long 模块来接收用户命令行参数
我们在linux常常用到一个程序需要加入参数,现在了解一下 perl 中的有关控制参数的模块 Getopt::Long ,比直接使用 @ARGV 的数组强大多了.我想大家知道在 Linux 中有的参数 ...
随机推荐
- 论文阅读: 面向Planning的端到端智驾Planning-oriented Autonomous Driving
原文地址:https://arxiv.org/abs/2212.10156 背景 当代自动驾驶系统多采用序列化的模块化的任务处理方式,比如感知.预测.规划等.为了处理多样的任务.达到高水平智能,当代智 ...
- Nginx 高性能架构解析
本文详细探讨了Nginx的反向代理.负载均衡和性能优化技术,包括配置优化.系统优化.缓存机制和高并发处理策略,旨在帮助专业从业者深入理解并有效应用Nginx. 关注TechLead,复旦博士,分享云服 ...
- windows内置账户
参考文献: http://www.cnblogs.com/xianspace/archive/2009/04/05/1429835.html 转载自: https://www.cnblogs.com/ ...
- 容器技术Docker知识精讲【形成知识体系篇】
作者的经验分享,包括很多实战过程和总结,为着手系统化学习Docker容器的朋友提供. 环境要求 Linux操作系统(Centos),建议在虚拟机VMware或VirtualBox下安装Centos D ...
- IDEA之调试或运行的小助手日志插件Grep Console:不同颜色区分,查看日志看方便【工欲善其事必先利其器】
简介 Grep Console是一款方便开发者对idea控制台输出日志进行个性化管理的插件.这个插件还是很用的,在满屏的日志中,迅速找到自己关注的内容,调试程序的绝佳工具. 功能特性 Grep Con ...
- API网关实践-网易云轻舟微服务
微服务最佳实践中,我们需要通过统一的 API 网关进行服务能力的共享,API 网关为用户提供发布.管理.保护和监控 API的能力,帮助用户在自己的多个系统之间,或者内部系统与合作伙伴以及第三方的系统之 ...
- 解码 xsync 的 map 实现
解码 xsync 的 map 实现 最近在寻找 Go 的并发 map 库的时候,翻到一个 github 宝藏库,xsync (https://github.com/puzpuzpuz/xsync) . ...
- 微信小程序热门选题
一.大体实现思路 微信小程序,现在是非常热门的,基于微信生态开发的.现在很多计算机毕业的同学,都会选择微信小程序作为毕业设计 小程序端通常都是展示数据给用户去看的,大多数情况下,这些数据不是写死的,而 ...
- MiniAuth 一个轻量 ASP.NET Core Identity Web 后台管理中间插件
MiniAuth 一个轻量 ASP.NET Core Identity Web 后台管理中间插件 「一行代码」为「新.旧项目」 添加 Identity 系统跟用户.权限管理网页后台系统 开箱即用,避免 ...
- git常用代码
//当前文件夹删除的文件恢复git reset Head .// 查看所有分支git branch// 查看本地分支 对应的远程分支git branch -vv//git branch -vv//创建 ...