Go语言中接口的应用与排序技巧
1. 使用flag.Value解析命令行标志
在Go语言里,我们能够自定义命令行标志的表示法,这得益于 flag.Value 接口。下面通过一个睡眠程序来详细说明。
package main
import (
"flag"
"fmt"
"time"
)
var period = flag.Duration("period", 1*time.Second, "sleep period")
func main() {
flag.Parse()
fmt.Printf("Sleeping for %v...", *period)
time.Sleep(*period)
fmt.Println()
}
该程序默认的睡眠时长为1秒,不过可通过 -period 标志来指定不同的时长,支持多种用户友好的格式。例如:
$ go build gopl.io/ch7/sleep
$ ./sleep
Sleeping for 1s...
$ ./sleep -period 50ms
Sleeping for 50ms...
$ ./sleep -period 2m30s
Sleeping for 2m30s...
$ ./sleep -period 1.5h
Sleeping for 1h30m0s...
$ ./sleep -period "1 day"
invalid value "1 day" fo
超级会员免费看
订阅专栏 解锁全文
40

被折叠的 条评论
为什么被折叠?



