golang

[golang] 매개 변수 받기

'김용환' 2017. 9. 8. 14:11


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