Go
명령 줄 인수와 플래그 구문 분석
수색…
명령 줄 인수
명령 줄 인수 구문 분석은 다른 언어와 매우 유사합니다. 코드에서, 인수의 조각에 접근하면, 첫 번째 인수는 프로그램 자체의 이름이됩니다.
간단한 예 :
package main
import (
"fmt"
"os"
)
func main() {
progName := os.Args[0]
arguments := os.Args[1:]
fmt.Printf("Here we have program '%s' launched with following flags: ", progName)
for _, arg := range arguments {
fmt.Printf("%s ", arg)
}
fmt.Println("")
}
출력은 다음과 같습니다.
$ ./cmd test_arg1 test_arg2
Here we have program './cmd' launched with following flags: test_arg1 test_arg2
각 인수는 문자열입니다. os
패키지에서는 다음과 같이 보입니다 : var Args []string
국기
Go 표준 라이브러리는 프로그램에 전달 된 플래그를 파싱하는 데 도움이되는 패키지 flag
를 제공합니다.
그 주 flag
보통 GNU 스타일 플래그를 제공하지 않는 패키지를. 즉, 멀티 문자 플래그는 다음과 같이 단일 하이픈으로 시작해야합니다 : -exampleflag
, this : --exampleflag
. GNU 스타일 플래그는 일부 타사 패키지에서 수행 할 수 있습니다.
package main
import (
"flag"
"fmt"
)
func main() {
// basic flag can be defined like this:
stringFlag := flag.String("string.flag", "default value", "here comes usage")
// after that stringFlag variable will become a pointer to flag value
// if you need to store value in variable, not pointer, than you can
// do it like:
var intFlag int
flag.IntVar(&intFlag, "int.flag", 1, "usage of intFlag")
// after all flag definitions you must call
flag.Parse()
// then we can access our values
fmt.Printf("Value of stringFlag is: %s\n", *stringFlag)
fmt.Printf("Value of intFlag is: %d\n", intFlag)
}
flag
는 우리에게 도움이되는 메시지입니다.
$ ./flags -h
Usage of ./flags:
-int.flag int
usage of intFlag (default 1)
-string.flag string
here comes usage (default "default value")
모든 플래그로 호출 :
$ ./flags -string.flag test -int.flag 24
Value of stringFlag is: test
Value of intFlag is: 24
누락 된 플래그가있는 호출 :
$ ./flags
Value of stringFlag is: default value
Value of intFlag is: 1
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow