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 中有的参数 ...
随机推荐
- OpenCV程序练习(二):图像处理基础
一.彩色图像像素处理 代码 import cv2 import numpy as np #----------蓝色通道---------- blue=np.zeros((300,300,3),dtyp ...
- python实用总结
Python3 常用工具 1. 命令行快速搭建本地http服务器 python3 -m http.server 8000 在命令行中输入此命令,就会在当前目录下搭建http服务器,可以通过访问http ...
- SpringBoot读取配置文件的几种方式
示例 user: name: zhaotian age: 18 sex: 男 @Value注解 @Value注解是Spring框架提供的用于注入配置属性值的注解,它可用于类的成员变量.方法参数和构造函 ...
- SQL注入漏洞攻击
l-> 对于用户登录的实现,提供SQL语句 •-> select * from 表名 where uid=- and pwd=- •-> 使用字符串拼接 l-> 提供密码为:' ...
- Docker下安装Nginx代理服务器【工作实操版】
一.Nginx下载 使用命令拉取nginx镜像到本地,此处我们获取排名第一的是官方最新镜像,其它版本可以去DockerHub查询 docker pull nginx 二.先启动一个nginx容器用于c ...
- [oeasy]python0041_ 转义字符_转义序列_escape_序列_sequence
转义序列 回忆上次内容 上次回顾了5bit-Baudot博多码的来历 从 莫尔斯码 到 博多码 原来 人 来 收发电报 现在 机器 来 收发电报 输入方式 从 电键 改成 键盘 输出方式 从 纸带 变 ...
- [oeasy]python0036_牛说_cowsay_小动物说话_asciiart_figlet_lolcat_管道(祝大家新年快乐~)
牛说(cowsay) 回忆上次内容 上次我们研究了shell脚本的编程 并且在shell中实现了 循环语句 延迟命令 清屏命令 python命令 figlet命令 编辑 还能整点什么呢? 还想 ...
- oeasy教您玩转vim - 86 - # 外部命令external Command
外部命令 external 回忆 上次研究的是global :[range]global/{pattern}/{command} range 是执行的范围 pattern 是搜索的模式 comma ...
- C# 一维数组与二维数组相互转换
class Program { static void Main(string[] args) { double[] a = { 1, 2, 3, 4, 5, 6 }; double[,] b = R ...
- 在Eclipse中使用Project Explorer视图与Package Explorer视图
1.在项目文件比较多的情况下,为了方便查看整体和及时定位到项目文件,通常会同时使用Project Explorer视图与Package Explorer视图. 2.打开Project Explorer ...