Go+ 命令行标识教程(4.22)

Posted Data-Mining

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go+ 命令行标识教程(4.22)相关的知识,希望对你有一定的参考价值。

目录

Go+ 概述

正文

导入包

基础标识声明

演示实例


Go+ 概述

Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。

正文

命令行标志是为命令行程序指定选项的常用方法。例如,在 ls -l 命令中,-l 就是一个命令行标志。Go+ 也提供了相关的控制方法,今天我们就来了解一下这方面的一些内容。

导入包

Go+ 在启动替代进程时,一般会使用的工具库是 flag 包,导入方式如下:

import (
    "flag"
)

基础标识声明

基本标识声明可用于字符串、整数和布尔选项。比如,我们声明一个字符串标识词,其默认值为“foo”,并有一个简短的描述。然后,以相同的方式声明一个整型和布尔类型的标识。示例代码如下:

wordPtr := flag.String("word", "foo", "a string")
numbPtr := flag.Int("numb", 42, "an int")
forkPtr := flag.Bool("fork", false, "a bool")

还可以操作一个已经定义好的变量。注意,我们需要传入一个指向标识声明函数的指针。示例代码如下:

var svar string
flag.StringVar(&svar, "svar", "bar", "a string var")

在所有的命令行标识声明后,就调用 flag.Parse 方法执行命令行解析。

演示实例

结合上面介绍的内容,我们整体看一下演示效果。

示例代码:

import (
    "flag"
)

wordPtr := flag.String("word", "foo", "a string")
numbPtr := flag.Int("numb", 42, "an int")
forkPtr := flag.Bool("fork", false, "a bool")

var svar string
flag.StringVar(&svar, "svar", "bar", "a string var")

flag.Parse()

println("word:", *wordPtr)
println("numb:", *numbPtr)
println("fork:", *forkPtr)
println("svar:", svar)
println("tail:", flag.Args())

执行效果:

word: foo
numb: 42
fork: false
svar: bar
tail: []

亲自试一试! 

将上述代码保存为文件 command-line-flags.gop,编译后,分别执行如下命令。

修改所有命令行标识,命令如下:

./command-line-flags -word=opt -numb=7 -fork -svar=flag

执行结果:

word: opt
numb: 7
fork: true
svar: flag
tail: []

尾部参数在解析标识之后自动匹配,命令如下:

./command-line-flags -word=opt a1 a2 a3

执行结果:

word: opt
...
tail: [a1 a2 a3]

也可以使用 -h 或者 --help 命令查看帮助信息,命令如下:

./command-line-flags -h

执行结果:

Usage of ./command-line-flags:
  -fork=false: a bool
  -numb=42: an int
  -svar="bar": a string var
  -word="foo": a string

以上是关于Go+ 命令行标识教程(4.22)的主要内容,如果未能解决你的问题,请参考以下文章

Go命令教程14. go env

Go+ 命令行参数使用教程(4.21)

Go语言命令行利器cobra使用教程

解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘(代码片段

Go命令教程13. go tool cgo

Go命令教程3. go install