6

Go のフラグについて説明できる人はいますか?

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

4 に答える 4

9

フラグは、コマンド ライン プログラムのオプションを指定する一般的な方法です。

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

最初にフラグなしで run プログラムを試してみてください。フラグを省略すると、自動的にデフォルト値が使用されることに注意してください。

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

指定した値でフラグを指定すると、デフォルトは渡された値で上書きされます。

于 2014-06-13T07:28:04.723 に答える
2

完全な説明については、http: //golang.org/pkg/flag/を参照してください。

flag.Bool の引数は (名前文字列、値 bool、使用文字列) です。

name は検索する引数、value はデフォルト値、usage は -help 引数などに対するフラグの目的を説明し、flag.Usage() で表示されます。

より詳細な例については、こちらを確認してください

于 2009-11-13T03:46:17.360 に答える
2

flagコマンドライン引数を解析するために使用されます。コマンド ライン引数として「-n」を渡すと、omitNewLine は true に設定されます。チュートリアルでもう少し詳しく説明されています:

flag パッケージをインポートした後、12 行目でグローバル変数を作成して、echo の -n フラグの値を保持します。変数 omitNewline の型は *bool で、bool へのポインターです。

于 2009-11-13T03:13:20.080 に答える