Skip to content

Commit 89ee4b7

Browse files
authored
Merge pull request #746 from devlights/add-go122-range-over-integer-example
2 parents f312cd8 + 285aa7c commit 89ee4b7

File tree

3 files changed

+67
-11
lines changed

3 files changed

+67
-11
lines changed

examples/basic/loops/README.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

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

5-
| file | example name | note |
6-
| ------------------------ | ------------------------- | ---------------------------------------------------------------------- |
7-
| basic_for_loop.go | loops_basic_for_loop | 他の言語でも同じように存在する基本的な for-loop についてのサンプルです |
8-
| basic_foreach.go | loops_basic_foreach | Go での foreach ループのサンプルです |
9-
| channel_loop.go | loops_channel_loop | チャネルをループさせる場合のサンプルです |
10-
| map_loop.go | loops_map_loop | map のループについてのサンプルです |
11-
| range_loop.go | loops_range_loop | 単純に指定回数ループするためのサンプルです |
12-
| infinite_loop.go | loops_infinite_loop | 無限ループのサンプルです |
13-
| slice_loop.go | loops_slice_loop | スライスのループについてのサンプルです |
14-
| for_loop_two_variable.go | loops_two_variable | for ループで 2つの変数 を初期化してループさせるサンプルです |
15-
| go122_loop_variable.go | loops_go122_loop_variable | Go 1.22 で導入された「ループ変数」の仕様変更についてのサンプルです. |
5+
| file | example name | note |
6+
| --------------------------- | ------------------------------ | ---------------------------------------------------------------------- |
7+
| basic_for_loop.go | loops_basic_for_loop | 他の言語でも同じように存在する基本的な for-loop についてのサンプルです |
8+
| basic_foreach.go | loops_basic_foreach | Go での foreach ループのサンプルです |
9+
| channel_loop.go | loops_channel_loop | チャネルをループさせる場合のサンプルです |
10+
| map_loop.go | loops_map_loop | map のループについてのサンプルです |
11+
| range_loop.go | loops_range_loop | 単純に指定回数ループするためのサンプルです |
12+
| infinite_loop.go | loops_infinite_loop | 無限ループのサンプルです |
13+
| slice_loop.go | loops_slice_loop | スライスのループについてのサンプルです |
14+
| for_loop_two_variable.go | loops_two_variable | for ループで 2つの変数 を初期化してループさせるサンプルです |
15+
| go122_loop_variable.go | loops_go122_loop_variable | Go 1.22 で導入された「ループ変数」の仕様変更についてのサンプルです. |
16+
| go122_range_over_integer.go | loops_go122_range_over_integer | Go 1.22 で導入された range over integers ループ機能のサンプルです. |

examples/basic/loops/examples.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,5 @@ func (r *register) Regist(m mapping.ExampleMapping) {
2626
m["loops_diff_range_and_normal"] = DiffRangeLoopAndNormalLoop
2727
m["loops_range_loop_tmpvalue_with_array"] = RangeLoopTmpValueWithArray
2828
m["loops_go122_loop_variable"] = Go122LoopVariable
29+
m["loops_go122_range_over_integer"] = Go122RangeOverInterger
2930
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package loops
2+
3+
import "github.com/devlights/gomy/output"
4+
5+
// Go122RangeOverInterger は、Go 1.22 で導入された range over integers ループ機能のサンプルです.
6+
//
7+
// 注意点として、通常 for-range ループでは インデックス と 値 を受け取るが
8+
// range over integer を利用したループの場合は、インデックス のみとなる。(当然であるが)
9+
//
10+
// # REFERENCES
11+
//
12+
// - https://go.dev/doc/go1.22#language
13+
// - https://go.dev/play/p/ky02zZxgk_r?v=gotip
14+
// - https://go.dev/ref/spec#For_range
15+
func Go122RangeOverInterger() error {
16+
17+
// for-range にて 数値 をそのまま指定できるようになった
18+
for i := range 3 {
19+
output.Stdoutl("[i]", i)
20+
}
21+
22+
output.StdoutHr()
23+
24+
var (
25+
count = 3
26+
)
27+
28+
for i := range count {
29+
output.Stdoutl("[i]", i)
30+
}
31+
32+
return nil
33+
34+
/*
35+
$ task
36+
task: [build] go build .
37+
task: [run] ./try-golang -onetime
38+
39+
ENTER EXAMPLE NAME: loops_go122_range_over_integer
40+
41+
[Name] "loops_go122_range_over_integer"
42+
[i] 0
43+
[i] 1
44+
[i] 2
45+
--------------------------------------------------
46+
[i] 0
47+
[i] 1
48+
[i] 2
49+
50+
51+
[Elapsed] 43.88µs
52+
*/
53+
54+
}

0 commit comments

Comments
 (0)