-
Notifications
You must be signed in to change notification settings - Fork 0
/
flags.go
66 lines (57 loc) · 1.55 KB
/
flags.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Demonstra o uso de funções do pacote "flag"
// arataca89@gmail.com
// 20210415
//
// Referências:
// (DONOVAN E KERNIGHAN, 2017)
// https://golang.org/pkg/flag/
// https://gobyexample.com/command-line-flags
package main
import (
"flag"
"fmt"
)
func main() {
// flag.String(name string, value string, usage string) *string
strFlag := flag.String("str", "flag", "flag do tipo string")
// flag.Int(name string, value int, usage string) *int
intFlag := flag.Int("nr", 13, "flag do tipo int")
// flag.Bool(name string, value bool, usage string) *bool
boolFlag := flag.Bool("bol", true, "flag do tipo boolean")
flag.Parse()
fmt.Println("str:", *strFlag)
fmt.Println("nr:", *intFlag)
fmt.Println("bol:", *boolFlag)
// flag.Args() []string - retorna os argumentos de linha de
// comando que não são flags
fmt.Println("args:", flag.Args())
}
/////////////////////////////////////////////////////////////////////
//
// compile com o comando: go build flags.go
//
// será criado o arquivo flags.exe (no windows)
//
// TESTES:
//
// C:\Users\nerd\golang\go_estudo>flags
// str: flag
// nr: 13
// bol: true
// args: []
//
// C:\Users\nerd\golang\go_estudo>flags -str=zurg -nr=41 -bol=false arg1 arg2 arg3
// str: zurg
// nr: 41
// bol: false
// args: [arg1 arg2 arg3]
//
// C:\Users\nerd\golang\go_estudo>flags -h
// Usage of flags:
// -bol
// flag do tipo boolean (default true)
// -nr int
// flag do tipo int (default 13)
// -str string
// flag do tipo string (default "flag")
//