Skip to content

Commit 1e91001

Browse files
committed
Add zerovalues examples
1 parent 4d66524 commit 1e91001

File tree

11 files changed

+198
-0
lines changed

11 files changed

+198
-0
lines changed

examples/basic/examples.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ import (
7070
"github.com/devlights/try-golang/examples/basic/variables"
7171
"github.com/devlights/try-golang/examples/basic/xmlop"
7272
"github.com/devlights/try-golang/examples/basic/yamlop"
73+
"github.com/devlights/try-golang/examples/basic/zerovalues"
7374
"github.com/devlights/try-golang/mapping"
7475
)
7576

@@ -155,4 +156,5 @@ func (r *register) Regist(m mapping.ExampleMapping) {
155156
variables.NewRegister().Regist(m)
156157
xmlop.NewRegister().Regist(m)
157158
yamlop.NewRegister().Regist(m)
159+
zerovalues.NewRegister().Regist(m)
158160
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# サンプルリスト
2+
3+
このディレクトリには以下のサンプルがあります。
4+
5+
|file|example name|note|
6+
|----|------------|----|
7+
|int.go|zerovalues\_int|Goにおける int のゼロ値についてのサンプルです.|

examples/basic/zerovalues/bool.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package zerovalues
2+
3+
import "github.com/devlights/gomy/output"
4+
5+
// Bool は、Goにおける bool のゼロ値についてのサンプルです.
6+
//
7+
// # REFERENCES
8+
// - https://go-tour-jp.appspot.com/basics/12
9+
// - https://brain2life.hashnode.dev/default-zero-values-in-go
10+
func Bool() error {
11+
//
12+
// bool の ゼロ値 は false
13+
//
14+
var (
15+
b bool
16+
)
17+
18+
output.Stdoutf("[bool zerovalue]", "%t\n", b)
19+
20+
return nil
21+
}

examples/basic/zerovalues/doc.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/*
2+
Package zerovalues -- Go言語の ゼロ値 についてのサンプルが配置されているパッケージです。
3+
*/
4+
package zerovalues
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package zerovalues
2+
3+
import (
4+
"github.com/devlights/try-golang/mapping"
5+
)
6+
7+
type (
8+
register struct{}
9+
)
10+
11+
// NewRegister -- このパッケージ用のサンプルを登録する mapping.Register を生成します。
12+
func NewRegister() mapping.Register {
13+
return new(register)
14+
}
15+
16+
// Regist -- 登録します.
17+
func (r *register) Regist(m mapping.ExampleMapping) {
18+
m["zerovalues_int"] = Int
19+
m["zerovalues_float"] = Float
20+
m["zerovalues_bool"] = Bool
21+
m["zerovalues_string"] = String
22+
m["zerovalues_pointer"] = Pointer
23+
m["zerovalues_slice"] = Slice
24+
m["zerovalues_map"] = Map
25+
}

examples/basic/zerovalues/float.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package zerovalues
2+
3+
import "github.com/devlights/gomy/output"
4+
5+
// Float は、Goにおける float のゼロ値についてのサンプルです.
6+
//
7+
// # REFERENCES
8+
// - https://go-tour-jp.appspot.com/basics/12
9+
// - https://brain2life.hashnode.dev/default-zero-values-in-go
10+
func Float() error {
11+
//
12+
// float (float32, float64) の ゼロ値 は 0.0
13+
//
14+
var (
15+
f float64
16+
)
17+
18+
output.Stdoutf("[float zerovalue]", "%.1f\n", f)
19+
20+
return nil
21+
}

examples/basic/zerovalues/int.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package zerovalues
2+
3+
import "github.com/devlights/gomy/output"
4+
5+
// Int は、Goにおける int のゼロ値についてのサンプルです.
6+
//
7+
// # REFERENCES
8+
// - https://go-tour-jp.appspot.com/basics/12
9+
// - https://brain2life.hashnode.dev/default-zero-values-in-go
10+
func Int() error {
11+
//
12+
// int の ゼロ値 は 0
13+
//
14+
var (
15+
i int
16+
)
17+
18+
output.Stdoutf("[int zerovalue]", "%d\n", i)
19+
20+
return nil
21+
}

examples/basic/zerovalues/map.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package zerovalues
2+
3+
import "github.com/devlights/gomy/output"
4+
5+
// Map は、Goにおける マップ のゼロ値についてのサンプルです.
6+
//
7+
// # REFERENCES
8+
// - https://go-tour-jp.appspot.com/basics/12
9+
// - https://brain2life.hashnode.dev/default-zero-values-in-go
10+
func Map() error {
11+
//
12+
// マップ の ゼロ値 は nil
13+
// 注意点として マップ の場合、ゼロ値をprintfすると map[] と表示される.
14+
// アドレスを表示すると ゼロ値 の場合は 0x0 と表示される.
15+
// スライスとは違い ゼロ値 のマップにはキーを追加出来ない.
16+
//
17+
var (
18+
m map[int]string
19+
)
20+
21+
output.Stdoutf("[map zerovalue]", "%v\t%p\tNIL?=%t\n", m, m, m == nil)
22+
23+
// 以下のようにエラーとなる
24+
// m[100] = "apple"
25+
// >> panic: assignment to entry in nil map
26+
27+
return nil
28+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package zerovalues
2+
3+
import "github.com/devlights/gomy/output"
4+
5+
// Pointer は、Goにおける ポインタ のゼロ値についてのサンプルです.
6+
//
7+
// # REFERENCES
8+
// - https://go-tour-jp.appspot.com/basics/12
9+
// - https://brain2life.hashnode.dev/default-zero-values-in-go
10+
func Pointer() error {
11+
//
12+
// ポインタ の ゼロ値 は nil
13+
//
14+
var (
15+
p *int
16+
)
17+
18+
output.Stdoutf("[pointer zerovalue]", "%v\n", p)
19+
20+
return nil
21+
}

examples/basic/zerovalues/slice.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package zerovalues
2+
3+
import "github.com/devlights/gomy/output"
4+
5+
// Slice は、Goにおける スライス のゼロ値についてのサンプルです.
6+
//
7+
// # REFERENCES
8+
// - https://go-tour-jp.appspot.com/basics/12
9+
// - https://brain2life.hashnode.dev/default-zero-values-in-go
10+
func Slice() error {
11+
//
12+
// スライス の ゼロ値 は nil
13+
// 注意点として スライス の場合、ゼロ値をprintfすると [] と表示される.
14+
// アドレスを表示すると ゼロ値 の場合は 0x0 と表示される.
15+
// また、append() には ゼロ値のスライス を渡すことが可能な点に注意.
16+
//
17+
var (
18+
s []int
19+
)
20+
21+
output.Stdoutf("[slice zerovalue]", "%v\t%p\tNIL?=%t\n", s, s, s == nil)
22+
23+
s = append(s, 100)
24+
output.Stdoutf("[slice after append]", "%v\t%p\tNIL?=%t\n", s, s, s == nil)
25+
26+
return nil
27+
}

0 commit comments

Comments
 (0)