[golang] 매개 변수 받기
go언어에서 매개 변수를 받을 수 있다. 기본 값을
package main
import (
"fmt"
"flag"
)
func main() {
id := flag.String("id", "iiiii", "aaaaa")
name := flag.String("name", "nnnnn", "bbbbb")
flag.Parse()
fmt.Println("id:", *id)
fmt.Println("name:", *name)
fmt.Printf("%v %v\n", *id, *name)
}
결과는 다음과 같다. 디폴트값을 넣은 효과가 발휘된다.
$ ./Test -id=1 -name=samuel
id: 1
name: samuel
1 samuel
$ ./Test -name=samuel
id: iiiii
name: samuel
iiiii samuel
$./Test -id=1
id: 1
name: nnnnn
1 nnnnn
flag.PrintDefaults()와 flag.Args(), flag.Arg(i)에 대한 쓰임을 살펴본다.
원하는 매개 변수가 정해지지 않았다면 flag.PrintDefaults()를 통해 flag.String()에서 정의된 내용이 나타나고,
flag.Args()는 주어진 매개 변수외 추가로 매개 변수가 주어졌다면 확인할 수 있는 api이다.
package main
import (
"fmt"
"flag"
"os"
)
func main() {
id := flag.String("id", "iiiii", "aaaaa")
name := flag.String("name", "nnnnn", "bbbbb")
if *id == "" || *name == "" {
flag.PrintDefaults()
os.Exit(1)
}
flag.Parse()
fmt.Println("id:", *id)
fmt.Println("name:", *name)
fmt.Printf("%v %v\n", *id, *name)
fmt.Println(flag.Args())
fmt.Println(flag.Arg(0))
}
결과는 다음과 같다.
./Test -id=1 -name=samuel a b c
id: 1
name: samuel
1 samuel
[a b c]
a