Golang 프로그램에서 명령줄 매개변수를 처리하는 방법에는 여러 가지가 있습니다. 간단한 경우 라이브러리를 사용하지 않고 os.Args를 직접 처리할 수 있습니다. 실제로 Golang의 표준 라이브러리는 명령줄 매개변수를 처리하기 위한 플래그 패키지를 제공합니다. Pflag와 같은 명령줄 매개변수 처리를 위한 타사 라이브러리도 있습니다.了Flag 패키지는 분석 명령줄 매개변수의 일련의 기능적 인터페이스를 제공합니다(권장 학습: Go
)명령줄 구문에는 주로 다음 형식이 포함됩니다.
-flag //只支持bool类型 -flag=x -flag x //只支持非bool类型이상 구문에는 하나 또는 두 개의 '-' 기호에 대해 동일한 효과가 있지만 세 번째 경우에는 bool이 아닌 유형만 지원된다는 점에 유의해야 합니다. 그 이유는 다음 상황이 발생하면
cmd -x **가 0이고 false이기 때문입니다. 파일 이름이나 파일은 x 태그의 값이 0 또는 false임을 나타낼 수도 있으므로 모호성을 유발할 수 있으므로 세 번째 유형은 bool이 아닌 유형만 지원하도록 규정됩니다. 정수 플래그의 경우 유효한 값은 1234, 0664, 0x1234 또는 음수 등이 될 수 있습니다. Boolean 플래그의 경우 1, 0, t, f, T, F, true, false, TRUE, FALSE, True, False 등이 될 수 있습니다.
명령줄 매개변수 분석 방법
플래그 사용에는 주로 다음이 포함됩니다. 다음 단계는
flag.String(), Bool(), Int() 및 기타 flag.Xxx() 메서드를 통해 플래그 매개변수
를 정의하는 세 가지 방법이 있습니다. 이 메서드는 해당 포인터import "flag" var ip = flag.Int("flagname", 1234, "help message for flagname")를 반환합니다. XxxVar() 메서드는 플래그를 변수에 바인딩합니다. 이 메서드는
var flagvar int func init() { flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname") }와 같은 값 유형을 반환합니다. flag.Var()를 통해 사용자 정의 유형을 구현해야 합니다. 포인터)(예:
flag.Var(&flagVal, "name", "help message for flagname")이 유형의 플래그의 경우 기본값은 변수 유형의 초기 값입니다.명령줄 매개변수를 정의된 플래그로 구문 분석하기 위해 플래그.Parse()를 호출합니다.
flag.Parse()파싱 함수는 명령줄 매개변수가 있는 경우 첫 번째 비플래그 중지를 발견합니다. 비플래그 명령줄 매개변수는 명령줄 구문을 충족하지 않는 매개변수를 참조합니다. 예를 들어, 명령줄 매개변수가 cmd --flag=true abc인 경우입니다. , 플래그가 아닌 첫 번째 명령줄 매개변수는 "abc"입니다Call Parse 구문 분석 후 플래그 자체(포인터 유형) 또는 바인딩된 변수(값 유형)를 직접 사용할 수 있습니다
fmt.Println("ip has value ", *ip) fmt.Println("flagvar has value ", flagvar)플래그가 아닌 명령을 얻을 수도 있습니다 flag.Args(), flag.Arg(i)
를 통한 라인 매개변수
위 내용은 golang 플래그 란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!