Skip to content

Commit 8b9f74c

Browse files
authored
Merge pull request #827 from devlights/add-flag-string-example
2 parents b2c3d3b + d78ab34 commit 8b9f74c

File tree

3 files changed

+59
-6
lines changed

3 files changed

+59
-6
lines changed

examples/basic/flags/README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
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() のサンプルです |
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+
| | | |

examples/basic/flags/examples.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ func (r *register) Regist(m mapping.ExampleMapping) {
1717
m["flags_var"] = Var
1818
m["flags_int"] = Int
1919
m["flags_bool"] = Bool
20+
m["flags_string"] = String
2021
}

examples/basic/flags/string.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+
// String は、flag.String(), flag.StringVar() のサンプルです。
10+
//
11+
// flagパッケージの関数は、flag.String()のように受け皿を戻り値で返してくれる関数と
12+
// flag.StringVar() のように予め自前で用意している変数を利用する2パターンの使い方がある。
13+
//
14+
// # REFERENCES
15+
// - https://pkg.go.dev/flag@go1.22.4#String
16+
// - https://pkg.go.dev/flag@go1.22.4#StringVar
17+
func String() error {
18+
var (
19+
fs = flag.NewFlagSet("", flag.ExitOnError)
20+
21+
s1 *string
22+
s2 string
23+
)
24+
25+
s1 = fs.String("s1", "", "string value 1")
26+
fs.StringVar(&s2, "i2", "default-value", "string value 2")
27+
28+
fs.Parse([]string{"-s1", "helloworld"})
29+
30+
output.Stdoutl("[s1]", *s1)
31+
output.Stdoutl("[s2]", s2)
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_string
41+
42+
[Name] "flags_string"
43+
[s1] helloworld
44+
[s2] default-value
45+
46+
47+
[Elapsed] 16.98µs
48+
*/
49+
50+
}

0 commit comments

Comments
 (0)