2009-11-13 3 views

ответ

2

См. http://golang.org/pkg/flag/ для получения полного описания.

Аргументы для flag.Bool являются (имя строки, булево значение, строка использования)

имя является аргументом искать, значение является значением по умолчанию и использование описывает назначение флага для -help аргумента или аналогичный, и отображается с flag.Usage().

Для более подробного примера проверить here

2

flag используется для анализа аргументов командной строки. Если вы передадите «-n» в качестве аргумента командной строки, omitNewLine будет установлено в true. Это объясняется немного дальше в руководстве:

После импортирования пакета флага строка 12 создает глобальную переменную для хранения значения флага -n эха. Переменная omitNewline имеет тип * bool, указатель на bool.

+0

Мне бы хотелось узнать, что такое 3 аргумента – Casebash

2

flags является распространенным способом задать параметры для программ командной строки.

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 

Если вы указали флаг с указанным значением, то по умолчанию будет перезаписано переданное.

Смежные вопросы