Go 围棋中的旗帜说明

Go 围棋中的旗帜说明,go,flags,Go,Flags,有人能解释围棋中的旗子吗 flag.Parse() var omitNewline = flag.Bool("n", false, "don't print final newline") 标志用于解析命令行参数。如果将“-n”作为命令行参数传递,则omitNewLine将设置为true。本教程将对此进行进一步解释: 导入flag包后,第12行创建一个全局变量来保存echo的-n flag的值。变量omit newline的类型为*bool,指针指向bool 有关完整说明,请参阅 flag.B

有人能解释围棋中的旗子吗

flag.Parse()
var omitNewline = flag.Bool("n", false, "don't print final newline")

标志
用于解析命令行参数。如果将“-n”作为命令行参数传递,则omitNewLine将设置为true。本教程将对此进行进一步解释:

导入flag包后,第12行创建一个全局变量来保存echo的-n flag的值。变量omit newline的类型为*bool,指针指向bool

有关完整说明,请参阅

flag.Bool的参数是(名称字符串、值Bool、用法字符串)

name是要查找的参数,value是默认值,而 用法描述-help参数或类似参数的标志用途,并与flag.usage()一起显示

有关更详细的示例,请参见“检查”是指定命令行程序选项的常用方法

package main

import (
  "flag"
  "fmt"
)

var (
  env *string
  port *int
)

// Basic flag declarations are available for string, integer, and boolean options.
func init() {
  env = flag.String("env", "development", "a string")
  port = flag.Int("port", 3000, "an int")
}

func main() {

  // Once all flags are declared, call flag.Parse() to execute the command-line parsing.
  flag.Parse()

  // Here we’ll just dump out the parsed options and any trailing positional 
  // arguments. Note that we need to dereference the points with e.g. *evn to 
  // get the actual option values.
  fmt.Println("env:", *env)
  fmt.Println("port:", *port)

}
运行程序:

go run main.go
尝试运行程序,首先给它不带标志。请注意,如果省略标志,它们将自动采用默认值

go run command-line-flags.go --env production --port 2000

如果您提供具有指定值的标志,则默认值将被传递的标志覆盖

就个人而言,我更喜欢
Var
类型的函数,因为它们引用了 而不是返回引用。这样,您就可以使用变量而无需 取消引用:

package main
import "flag"

func main() {
   var omitNewline bool
   flag.BoolVar(&omitNewline, "n", false, "don't print final newline")
   flag.Parse()
   println(omitNewline)
}

我想知道这3个参数是什么