Add Go 1.22's range-over-int example to for

This commit is contained in:
Eli Bendersky
2024-02-07 05:54:30 -08:00
parent ef87d6518a
commit 1143b547d7
4 changed files with 40 additions and 14 deletions

View File

@@ -15,10 +15,16 @@ func main() {
}
// A classic initial/condition/after `for` loop.
for j := 7; j <= 9; j++ {
for j := 0; j < 3; j++ {
fmt.Println(j)
}
// Another way of accomplishing the basic "do this
// N times" iteration is `range` over an integer.
for i := range 3 {
fmt.Println("range", i)
}
// `for` without a condition will loop repeatedly
// until you `break` out of the loop or `return` from
// the enclosing function.
@@ -29,7 +35,7 @@ func main() {
// You can also `continue` to the next iteration of
// the loop.
for n := 0; n <= 5; n++ {
for n := range 6 {
if n%2 == 0 {
continue
}

View File

@@ -1,2 +1,2 @@
7af221b7da2f2b22b0b1b0a1b365afc5a56ef815
2-4H-ArwHHS
8eeb5be15c3c5fc3f9d0d8009dfcec771dc5e03d
_F2rYHNilKa

View File

@@ -2,9 +2,12 @@ $ go run for.go
1
2
3
7
8
9
0
1
2
range 0
range 1
range 2
loop
1
3

31
public/for generated
View File

@@ -42,7 +42,7 @@ some basic types of <code>for</code> loops.</p>
</td>
<td class="code leading">
<a href="https://go.dev/play/p/2-4H-ArwHHS"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
<a href="https://go.dev/play/p/_F2rYHNilKa"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
<pre class="chroma"><code><span class="line"><span class="cl"><span class="kn">package</span> <span class="nx">main</span></span></span></code></pre>
</td>
</tr>
@@ -89,12 +89,26 @@ some basic types of <code>for</code> loops.</p>
</td>
<td class="code leading">
<pre class="chroma"><code><span class="line"><span class="cl"> <span class="k">for</span> <span class="nx">j</span> <span class="o">:=</span> <span class="mi">7</span><span class="p">;</span> <span class="nx">j</span> <span class="o">&lt;=</span> <span class="mi">9</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span> <span class="p">{</span>
<pre class="chroma"><code><span class="line"><span class="cl"> <span class="k">for</span> <span class="nx">j</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">j</span> <span class="p">&lt;</span> <span class="mi">3</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">j</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="p">}</span></span></span></code></pre>
</td>
</tr>
<tr>
<td class="docs">
<p>Another way of accomplishing the basic &ldquo;do this
N times&rdquo; iteration is <code>range</code> over an integer.</p>
</td>
<td class="code leading">
<pre class="chroma"><code><span class="line"><span class="cl"> <span class="k">for</span> <span class="nx">i</span> <span class="o">:=</span> <span class="k">range</span> <span class="mi">3</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">&#34;range&#34;</span><span class="p">,</span> <span class="nx">i</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="p">}</span></span></span></code></pre>
</td>
</tr>
<tr>
<td class="docs">
<p><code>for</code> without a condition will loop repeatedly
@@ -119,7 +133,7 @@ the loop.</p>
</td>
<td class="code">
<pre class="chroma"><code><span class="line"><span class="cl"> <span class="k">for</span> <span class="nx">n</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">n</span> <span class="o">&lt;=</span> <span class="mi">5</span><span class="p">;</span> <span class="nx">n</span><span class="o">++</span> <span class="p">{</span>
<pre class="chroma"><code><span class="line"><span class="cl"> <span class="k">for</span> <span class="nx">n</span> <span class="o">:=</span> <span class="k">range</span> <span class="mi">6</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="nx">n</span><span class="o">%</span><span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="k">continue</span>
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
@@ -143,9 +157,12 @@ the loop.</p>
</span></span><span class="line"><span class="cl"><span class="go">1
</span></span></span><span class="line"><span class="cl"><span class="go">2
</span></span></span><span class="line"><span class="cl"><span class="go">3
</span></span></span><span class="line"><span class="cl"><span class="go">7
</span></span></span><span class="line"><span class="cl"><span class="go">8
</span></span></span><span class="line"><span class="cl"><span class="go">9
</span></span></span><span class="line"><span class="cl"><span class="go">0
</span></span></span><span class="line"><span class="cl"><span class="go">1
</span></span></span><span class="line"><span class="cl"><span class="go">2
</span></span></span><span class="line"><span class="cl"><span class="go">range 0
</span></span></span><span class="line"><span class="cl"><span class="go">range 1
</span></span></span><span class="line"><span class="cl"><span class="go">range 2
</span></span></span><span class="line"><span class="cl"><span class="go">loop
</span></span></span><span class="line"><span class="cl"><span class="go">1
</span></span></span><span class="line"><span class="cl"><span class="go">3
@@ -181,7 +198,7 @@ structures.</p>
</div>
<script>
var codeLines = [];
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import \"fmt\"\u000A');codeLines.push('func main() {\u000A');codeLines.push(' i :\u003D 1\u000A for i \u003C\u003D 3 {\u000A fmt.Println(i)\u000A i \u003D i + 1\u000A }\u000A');codeLines.push(' for j :\u003D 7; j \u003C\u003D 9; j++ {\u000A fmt.Println(j)\u000A }\u000A');codeLines.push(' for {\u000A fmt.Println(\"loop\")\u000A break\u000A }\u000A');codeLines.push(' for n :\u003D 0; n \u003C\u003D 5; n++ {\u000A if n%2 \u003D\u003D 0 {\u000A continue\u000A }\u000A fmt.Println(n)\u000A }\u000A}\u000A');codeLines.push('');codeLines.push('');
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import \"fmt\"\u000A');codeLines.push('func main() {\u000A');codeLines.push(' i :\u003D 1\u000A for i \u003C\u003D 3 {\u000A fmt.Println(i)\u000A i \u003D i + 1\u000A }\u000A');codeLines.push(' for j :\u003D 0; j \u003C 3; j++ {\u000A fmt.Println(j)\u000A }\u000A');codeLines.push(' for i :\u003D range 3 {\u000A fmt.Println(\"range\", i)\u000A }\u000A');codeLines.push(' for {\u000A fmt.Println(\"loop\")\u000A break\u000A }\u000A');codeLines.push(' for n :\u003D range 6 {\u000A if n%2 \u003D\u003D 0 {\u000A continue\u000A }\u000A fmt.Println(n)\u000A }\u000A}\u000A');codeLines.push('');codeLines.push('');
</script>
<script src="site.js" async></script>
</body>