Skip to content

Commit faa848e

Browse files
authored
Merge pull request #831 from devlights/add-flag-arg-example
2 parents 0d895d9 + 9ec0971 commit faa848e

File tree

3 files changed

+53
-10
lines changed

3 files changed

+53
-10
lines changed

examples/basic/flags/README.md

+11-10
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
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() のサンプルです |
10-
| bool.go | flags_bool | flag.Bool(), flag.BoolVar() のサンプルです |
11-
| string.go | flags_string | flag.String(), flag.StringVar() のサンプルです |
12-
| duration.go | flags_duration | flag.Duration(), flag.DurationVar() のサンプルです |
13-
| func.go | flags_func | flag.Func() のサンプルです |
14-
| textvar.go | flags_textvar | flag.TextVar() のサンプルです |
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() のサンプルです |
11+
| string.go | flags_string | flag.String(), flag.StringVar() のサンプルです |
12+
| duration.go | flags_duration | flag.Duration(), flag.DurationVar() のサンプルです |
13+
| func.go | flags_func | flag.Func() のサンプルです |
14+
| textvar.go | flags_textvar | flag.TextVar() のサンプルです |
15+
| nargs.go | flags_nargs | flag.Arg(), flag.Args(), flag.NArg(), flag.NFlag() のサンプルです |

examples/basic/flags/examples.go

+1
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@ func (r *register) Regist(m mapping.ExampleMapping) {
2121
m["flags_duration"] = Duration
2222
m["flags_func"] = Func
2323
m["flags_textvar"] = TextVar
24+
m["flags_nargs"] = Nargs
2425
}

examples/basic/flags/nargs.go

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package flags
2+
3+
import (
4+
"flag"
5+
6+
"github.com/devlights/gomy/output"
7+
)
8+
9+
// Nargs は、flag.Arg(), flag.Args(), flag.NArg(), flag.NFlag() のサンプルです.
10+
//
11+
// - flag.NFlag() は、処理したフラグの数
12+
// - flag.NArg() は、処理していない引数の数
13+
// - flag.Arg(i) は、処理していない引数のN番目を取得
14+
// - flag.Args() は、処理していない引数リストを取得
15+
//
16+
// # REFERENCES
17+
// - https://pkg.go.dev/[email protected]#Arg
18+
// - https://pkg.go.dev/[email protected]#Args
19+
// - https://pkg.go.dev/[email protected]#NArg
20+
// - https://pkg.go.dev/[email protected]#NFlag
21+
func Nargs() error {
22+
var (
23+
fs = flag.NewFlagSet("", flag.ContinueOnError)
24+
25+
_ = fs.Int("i", 0, "int value")
26+
_ = fs.String("s", "", "string value")
27+
)
28+
29+
fs.Parse([]string{"-i", "100", "-s", "hello", "out.txt", "out2.txt"})
30+
31+
output.Stdoutl("[NFlag][処理したフラグの数 ]", fs.NFlag())
32+
output.Stdoutl("[NArg ][処理していない引数の数]", fs.NArg())
33+
34+
for i := range fs.NArg() {
35+
output.Stdoutl("[Arg ]", fs.Arg(i))
36+
}
37+
38+
output.Stdoutl("[Args ]", fs.Args())
39+
40+
return nil
41+
}

0 commit comments

Comments
 (0)