前言
Go语言标准库中提供了一个包flag
可以解析命令行参数。
示例代码:文件读取
package main import ( "fmt" "flag" "io/ioutil" ) func main() { // 文件路径由字符串指定,因此调用了 ptrFlagFpath := flag.String("fpath","hello.txt","-fpath 指定待读取文件的路径") flag.Parse() content,err := ioutil.ReadFile(*ptrFlagFpath) if err != nil { fmt.Println("read file fail:",err) return } // 读取到的文件字节需要手动进行类型转换 fmt.Println(string(content)) }
- 文件路径由字符串指定,因此调用了
flag.String
(其它类型还有flag.Int
、flag.Bool
) - 可以使用
--help
或-help
查看帮助。如:go run main.go --help
- 第一个参数:命令行标识符
fpath
,使用时用-fpath
- 第二个参数:命令行参数
fpath
的默认值,此处为hello.txt
- 第三个参数:命令行参数标识符
fpath
的提示信息 - 定义好命令行参数后需要通过
flag.Parse()
来对命令行参数进行解析