189 8069 5689

go语言Duration,Go语言编程

写命令行应用程序什么不可或缺?Go可以这样处理命令行参数

Go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简单。

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了宝山免费建站欢迎大家使用!

如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数。

将上面的代码执行go build -o "args_demo"编译之后,执行:

os.Args是一个存储命令行参数的字符串切片,它的第一个元素是执行文件的名称。

本文介绍了flag包的常用函数和基本用法,更详细的内容请查看官方文档。

flag包支持的命令行参数类型有bool、int、int64、uint、uint64、float float64、string、duration。

有以下两种常用的定义命令行flag参数的方法。

基本格式如下:

flag.Type(flag名, 默认值, 帮助信息)*Type 例如我们要定义姓名、年龄、婚否三个命令行参数,我们可以按如下方式定义:

需要注意的是,此时name、age、married、delay均为对应类型的指针。

基本格式如下: flag.TypeVar(Type指针, flag名, 默认值, 帮助信息) 例如我们要定义姓名、年龄、婚否三个命令行参数,我们可以按如下方式定义:

通过以上两种方法定义好命令行flag参数后,需要通过调用flag.Parse()来对命令行参数进行解析。

支持的命令行参数格式有以下几种:

其中,布尔类型的参数必须使用等号的方式指定。

Flag解析在第一个非flag参数(单个”-“不是flag参数)之前停止,或者在终止符”–“之后停止。

定义

使用

命令行参数使用提示:

$ ./flag_demo -help

Usage of ./flag_demo:

-age int

年龄 (default 18)

-d duration

时间间隔

-married

婚否

-name string

姓名 (default "张三")

正常使用命令行flag参数:

使用非flag命令行参数:

原文链接:

go使用变量创建time.Duration类型

在golang中,很多方法接收的时间参数都是time.Duration类型。例如sleep方法,使用

其中 1 * time.Second 的结果就是time.Duration类型。

但如果想把1换成一个int变量,例如

就会报错 mismatched types Duration and int ,意思是 num * time.Second 是int类型而不是time.Duration类型。看起来有点滑稽。

解决办法是先转换int为time.Duration类型:

不理解为什么会设计成这样。

golang中有什么方法可以在控制器中设置http超时时间

设置时间间隔为5秒 如果get不到就断开连接,post方法类似 都在client里设置http的超时时间

timeout := time.Duration(5 * time.Second)

client := http.Client{

Timeout: timeout,}

client.Get(url)


网站栏目:go语言Duration,Go语言编程
转载来于:http://cdxtjz.cn/article/phccpo.html

其他资讯