golang 命令行参数 同一个指标,可以传多个值
时间: 2023-08-04 09:33:50 浏览: 46
是的,可以使用 flag 包来实现命令行参数的解析,其中的 String、Int、Bool 等方法都支持设置多个值。例如,可以使用 StringSlice 方法来传递多个字符串参数,示例代码如下:
```
import "flag"
import "fmt"
func main() {
var values []string
flag.StringSliceVar(&values, "value", []string{}, "usage")
flag.Parse()
fmt.Println(values)
}
```
在命令行中使用 `-value=value1 -value=value2` 来传递多个值,程序将会输出 `[value1 value2]`。
相关问题
golang 命令行参数 -x --y
可以使用 `flag` 包来解析命令行参数,其中 `-x` 可以使用 `flag.BoolVar()` 方法来解析, `--y` 可以使用 `flag.StringVar()` 方法来解析。示例代码如下:
```go
package main
import (
"flag"
"fmt"
)
func main() {
var x bool
var y string
flag.BoolVar(&x, "x", false, "usage of x")
flag.StringVar(&y, "y", "", "usage of y")
flag.Parse()
fmt.Println("x:", x)
fmt.Println("y:", y)
}
```
在命令行中执行 `go run main.go -x --y=value`,输出结果如下:
```
x: true
y: value
```
golang 命令行参数,形式 -R, --recursive=false
可以使用 `flag` 包来解析命令行参数,其中 `-R` 可以使用 `flag.BoolVar()` 方法来解析, `--recursive=false` 可以使用 `flag.Bool()` 方法来解析。示例代码如下:
```go
package main
import (
"flag"
"fmt"
)
func main() {
var recursive bool
flag.BoolVar(&recursive, "R", false, "usage of R")
flag.Bool("recursive", false, "usage of recursive")
flag.Parse()
fmt.Println("R:", recursive)
fmt.Println("recursive:", flag.Lookup("recursive").Value)
}
```
在命令行中执行 `go run main.go -R --recursive=true`,输出结果如下:
```
R: true
recursive: true
```
需要注意的是,如果 `--recursive=true` 中的 `=` 后面没有值,则会解析成 `true`。如果想要指定为 `false`,则可以使用 `--recursive=false`。同时,`--recursive` 可以通过 `flag.Lookup()` 方法获取到 `flag.Flag` 类型的值,从而获取到其默认值。