Skip to content

Commit 8f050b3

Browse files
committed
Add clear builtin function (added go 1.21) example
1 parent abddea5 commit 8f050b3

File tree

5 files changed

+34
-3
lines changed

5 files changed

+34
-3
lines changed

examples/basic/builtins/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@
66
|----|------------|----|
77
|printfunc.go|builtin\_print|ビルドイン関数のprintとfmt.Printの違いについてのサンプルです.|
88
|minmax.go|builtin\_minmax|Go 1.21 で追加されたビルトイン関数のmin,maxについてのサンプルです.|
9+
|clear.go|builtin\_clear|Go 1.21 で追加されたビルトイン関数のclearについてのサンプルです.|

examples/basic/builtins/clear.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package builtins
2+
3+
import "github.com/devlights/gomy/output"
4+
5+
// Clear は、Go 1.21 で追加されたビルトイン関数のclearについてのサンプルです.
6+
func Clear() error {
7+
//
8+
// Go 1.21 から、clear ビルトイン関数が追加された
9+
// 対象となるのは、スライスとマップ。
10+
// - スライスの場合は要素がゼロ値にクリアされる
11+
// - マップの場合はキーが全て削除される
12+
//
13+
var (
14+
s = []int{1, 2, 3}
15+
m = map[int]string{100: "hello", 200: "world"}
16+
p = func(prefix string) {
17+
output.Stdoutf(prefix, "[slice] %v\t[map] %v\n", s, m)
18+
}
19+
)
20+
21+
p("before")
22+
23+
clear(s) // スライスの場合は要素がゼロ値になる。要素数は変わらない。
24+
clear(m) // マップの場合はキーがクリアされる。要素数はゼロとなる。
25+
26+
p("after")
27+
28+
return nil
29+
}

examples/basic/builtins/examples.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ func NewRegister() mapping.Register {
1515
func (r *register) Regist(m mapping.ExampleMapping) {
1616
m["builtin_print"] = PrintFunc
1717
m["builtin_minmax"] = MinMax
18+
m["builtin_clear"] = Clear
1819
}

examples/basic/builtins/minmax.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import "github.com/devlights/gomy/output"
66
//
77
// go doc で調べる場合は以下のようにします.
88
//
9-
// - go doc builtin.max
10-
// - go doc builtin.min
9+
// - go doc builtin.max
10+
// - go doc builtin.min
1111
//
1212
// # REFERENCES
1313
// - https://go.dev/ref/spec#Min_and_max

examples/singleapp/find_number_of_digits/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ func run() error {
1717
fmt.Printf("[ToString] %v\t[Log10] %v\n", lib.UseToString(v), lib.UseLog10(v))
1818

1919
return nil
20-
}
20+
}

0 commit comments

Comments
 (0)