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 中有的参数 ...
随机推荐
- ajax - 初步介绍
进入ajax了,想要进入vue还有一个前提就是要把ajax给熟悉一下,看一看客户端与服务器之间是怎么一个通信的过程,第一天主要是先了解了一下ajax的一些介绍,ajax嘛,在进入之前,肯定是要了解一下 ...
- JavaSE进阶核心之class类
Java顶级对象之Object 什么是Object类 Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入 Object类是所有java类的 ...
- Maven pom.xml文件
pom.xml 版本依赖 <!--编译器依赖--> <properties> <project.build.sourceEncoding>UTF-8</pro ...
- mac idea 配置Tomcat
官网下载Tomcat 下载地址:点我直达 配置Idea 设置Application Servers 操作步骤:Intellij IDEA->Preferences->Application ...
- 国内版Unity 6 Preview编辑器无法切换到DX12的解决方案(6000.0.5f1c1已解决)
先放解决方案的链接:https://www.cnblogs.com/horeaper/p/18200364 6000.0.0f1c1问题依旧,仍然是没有D3D12文件夹: 不仅新文件不加,旧文件(ha ...
- 5 pdf页码跳转失效
PC端网页查看pdf时,输入非数字页码回车后,页码跳转功能失效
- [oeasy]python0091_仙童公司_八叛逆_intel_8080_altair8800_牛郎星
编码进化 个人电脑 计算机 通过电话网络 进行连接 极客 利用技术 做一些有趣的尝试 极客文化 是 认真研究技术的 文化 计算机 不再是 高校和研究机构高墙里面的 神秘事物 而是 生活中常见的 家用电 ...
- oeasy教您玩转vim - 51 - # 读写文件
读写文件 回忆上节课内容 命令行的光标控制 方向键️️️️️可以控制左右移动 shift+️️️️️按照word左右移动光标 ctrl+b 到开头begin ctrl+e 到结尾end ctrl+w ...
- Pandas库学习笔记(1)
参考:菜鸟教程 pandas库使用了NumPy的大多数功能.建议您先阅读有关NumPy的教程,然后再继续本教程. Pandas 适用于处理以下类型的数据: 与 SQL 或 Excel 表类似的,含异构 ...
- char字符_C
字符的表示 字符类型由单引号' '包围,字符串由双引号" "包围. //正确的写法 char a = '1'; char b = '$'; char c = 'X'; char ...