Skip to content

Commit b2c3d3b

Browse files
authored
Merge pull request #826 from devlights/add-flag-bool-example
2 parents d0330a1 + 3c5adc7 commit b2c3d3b

File tree

3 files changed

+57
-5
lines changed

3 files changed

+57
-5
lines changed

examples/basic/flags/README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22

33
このディレクトリには以下のサンプルがあります。
44

5-
| file | example name | note |
6-
| ---------- | ------------- | ---------------------------------------- |
7-
| flagset.go | flags_flagset | flag.Flagset のサンプルです |
8-
| var.go | flags_var | flag.Var() のサンプルです |
9-
| int.go | flags_int | flag.Int(), flag.IntVar() のサンプルです |
5+
| file | example name | note |
6+
| ---------- | ------------- | ------------------------------------------ |
7+
| flagset.go | flags_flagset | flag.Flagset のサンプルです |
8+
| var.go | flags_var | flag.Var() のサンプルです |
9+
| int.go | flags_int | flag.Int(), flag.IntVar() のサンプルです |
10+
| bool.go | flags_bool | flag.Bool(), flag.BoolVar() のサンプルです |

examples/basic/flags/bool.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package flags
2+
3+
import (
4+
"flag"
5+
6+
"github.com/devlights/gomy/output"
7+
)
8+
9+
// Bool は、flag.Bool(), flag.BoolVar() のサンプルです。
10+
//
11+
// flagパッケージの関数は、flag.Bool()のように受け皿を戻り値で返してくれる関数と
12+
// flag.BoolVar() のように予め自前で用意している変数を利用する2パターンの使い方がある。
13+
//
14+
// # REFERENCES
15+
// - https://pkg.go.dev/flag@go1.22.4#Bool
16+
// - https://pkg.go.dev/flag@go1.22.4#BoolVar
17+
func Bool() error {
18+
var (
19+
fs = flag.NewFlagSet("", flag.ExitOnError)
20+
21+
b1 *bool
22+
b2 bool
23+
)
24+
25+
b1 = fs.Bool("b1", false, "bool value 1")
26+
fs.BoolVar(&b2, "b2", true, "bool value 2")
27+
28+
fs.Parse([]string{"-b1", "-b2=false"})
29+
30+
output.Stdoutl("[b1]", *b1)
31+
output.Stdoutl("[b2]", b2)
32+
33+
return nil
34+
35+
/*
36+
$ task
37+
task: [build] go build .
38+
task: [run] ./try-golang -onetime
39+
40+
ENTER EXAMPLE NAME: flags_bool
41+
42+
[Name] "flags_bool"
43+
[b1] true
44+
[b2] false
45+
46+
47+
[Elapsed] 36.81µs
48+
*/
49+
50+
}

examples/basic/flags/examples.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ func (r *register) Regist(m mapping.ExampleMapping) {
1616
m["flags_flagset"] = Flagset
1717
m["flags_var"] = Var
1818
m["flags_int"] = Int
19+
m["flags_bool"] = Bool
1920
}

0 commit comments

Comments
 (0)