Go 언어 Command line Flag 알아보기
오늘은 Go 언어에서 지원하는 커맨드라인 플래그를 간단한 코드로 알아보려 합니다.
package main
import (
"flag"
"fmt"
)
커맨드라인 플래그를 파싱하는 패키지인 flag를 가져오고, 문자열을 출력할 fmt 패키지도 가져옵니다.
func main() {
wordPtr := flag.String("string", "default", "string")
numPtr := flag.Int("int", 404, "int")
boolPtr := flag.Bool("bool", true, "bool")
string, int, bool 타입으로 플래그를 선언할 수 있습니다.
flag.String,flag.Int,flag.Bool는 첫 인자로 포인터를 반환합니다.
var strVar string
var intVar int
var boolVar bool
flag.StringVar(&strVar, "strVar", "default", "string")
flag.IntVar(&intVar, "intVar", 404, "int")
flag.BoolVar(&boolVar, "boolVar", true, "bool")
이미 선언된 변수를 사용하려면 해당 변수의 포인터를 전달합니다.
flag.Parse()
플래그를 파싱하기 위해 Parse 함수를 호출합니다.
fmt.Println(*wordPtr, *numPtr, *boolPtr)
fmt.Println(strVar, intVar, boolVar)
fmt.Println(flag.Args())
}
(-int 99 -intVar 99 a1 aa a4)
와 같이 프로그램이 실행될 때에 같이 작성되어 파싱된 값을 출력합니다.
위와 같이 플래그에 값을 준 것은 주어진 값이 출력되고, 값을 주어지지 않은 것은 기본적으로 인자에 넣어둔 값이 출력됩니다.
또한 플래그에 해당되지 않는 인자들은 Args로 출력됩니다.
Written on November 25, 2018