Может ли кто-нибудь объяснить флаги в Go?Объяснение флагов в Go
flag.Parse()
var omitNewline = flag.Bool("n", false, "don't print final newline")
Может ли кто-нибудь объяснить флаги в Go?Объяснение флагов в Go
flag.Parse()
var omitNewline = flag.Bool("n", false, "don't print final newline")
См. http://golang.org/pkg/flag/ для получения полного описания.
Аргументы для flag.Bool являются (имя строки, булево значение, строка использования)
имя является аргументом искать, значение является значением по умолчанию и использование описывает назначение флага для -help аргумента или аналогичный, и отображается с flag.Usage().
Для более подробного примера проверить here
flag
используется для анализа аргументов командной строки. Если вы передадите «-n» в качестве аргумента командной строки, omitNewLine будет установлено в true. Это объясняется немного дальше в руководстве:
После импортирования пакета флага строка 12 создает глобальную переменную для хранения значения флага -n эха. Переменная omitNewline имеет тип * bool, указатель на bool.
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
Если вы указали флаг с указанным значением, то по умолчанию будет перезаписано переданное.
Мне бы хотелось узнать, что такое 3 аргумента – Casebash