Add examples of maps/slices packages
This commit is contained in:
parent
2166e61181
commit
146bd9cce2
@ -3,7 +3,10 @@
|
||||
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
import (
|
||||
"fmt"
|
||||
"maps"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
@ -58,4 +61,11 @@ func main() {
|
||||
// the same line with this syntax.
|
||||
n := map[string]int{"foo": 1, "bar": 2}
|
||||
fmt.Println("map:", n)
|
||||
|
||||
// The `maps` package contains a number of useful
|
||||
// utility functions for maps.
|
||||
n2 := map[string]int{"foo": 1, "bar": 2}
|
||||
if maps.Equal(n, n2) {
|
||||
fmt.Println("n == n2")
|
||||
}
|
||||
}
|
||||
|
@ -1,2 +1,2 @@
|
||||
b976324013ef31370d1605d1834c5dd6f0db0ea1
|
||||
6gcPOX9Mm1R
|
||||
c8435b8cc754213b70c58c9a51dfa824c6f70dd7
|
||||
5jpkxJ2T0Lv
|
||||
|
@ -9,3 +9,4 @@ map: map[k1:7]
|
||||
map: map[]
|
||||
prs: false
|
||||
map: map[bar:2 foo:1]
|
||||
n == n2
|
||||
|
@ -3,7 +3,10 @@
|
||||
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
import (
|
||||
"fmt"
|
||||
"slices"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
@ -70,6 +73,13 @@ func main() {
|
||||
t := []string{"g", "h", "i"}
|
||||
fmt.Println("dcl:", t)
|
||||
|
||||
// The `slices` package contains a number of useful
|
||||
// utility functions for slices.
|
||||
t2 := []string{"g", "h", "i"}
|
||||
if slices.Equal(t, t2) {
|
||||
fmt.Println("t == t2")
|
||||
}
|
||||
|
||||
// Slices can be composed into multi-dimensional data
|
||||
// structures. The length of the inner slices can
|
||||
// vary, unlike with multi-dimensional arrays.
|
||||
|
@ -1,2 +1,2 @@
|
||||
9f1302a9c3cf79e5144c4818ea09465ff8d6da57
|
||||
553_cYPVlPH
|
||||
522c14373ae9581dd3001be32530cdf940637646
|
||||
kiy1StxorBF
|
||||
|
@ -12,6 +12,7 @@ sl1: [c d e]
|
||||
sl2: [a b c d e]
|
||||
sl3: [c d e f]
|
||||
dcl: [g h i]
|
||||
t == t2
|
||||
2d: [[0] [1 2] [2 3 4]]
|
||||
|
||||
# Check out this [great blog post](https://go.dev/blog/slices-intro)
|
||||
|
31
public/maps
generated
31
public/maps
generated
@ -42,7 +42,7 @@
|
||||
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="https://go.dev/play/p/6gcPOX9Mm1R"><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/5jpkxJ2T0Lv"><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>
|
||||
@ -53,7 +53,10 @@
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<pre class="chroma"><code><span class="line"><span class="cl"><span class="kn">import</span> <span class="s">"fmt"</span></span></span></code></pre>
|
||||
<pre class="chroma"><code><span class="line"><span class="cl"><span class="kn">import</span> <span class="p">(</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="s">"fmt"</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="s">"maps"</span>
|
||||
</span></span><span class="line"><span class="cl"><span class="p">)</span></span></span></code></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -192,10 +195,25 @@ itself, so we ignored it with the <em>blank identifier</em>
|
||||
the same line with this syntax.</p>
|
||||
|
||||
</td>
|
||||
<td class="code">
|
||||
<td class="code leading">
|
||||
|
||||
<pre class="chroma"><code><span class="line"><span class="cl"> <span class="nx">n</span> <span class="o">:=</span> <span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="kt">int</span><span class="p">{</span><span class="s">"foo"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s">"bar"</span><span class="p">:</span> <span class="mi">2</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">"map:"</span><span class="p">,</span> <span class="nx">n</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">"map:"</span><span class="p">,</span> <span class="nx">n</span><span class="p">)</span></span></span></code></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="docs">
|
||||
<p>The <code>maps</code> package contains a number of useful
|
||||
utility functions for maps.</p>
|
||||
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<pre class="chroma"><code><span class="line"><span class="cl"> <span class="nx">n2</span> <span class="o">:=</span> <span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="kt">int</span><span class="p">{</span><span class="s">"foo"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s">"bar"</span><span class="p">:</span> <span class="mi">2</span><span class="p">}</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="nx">maps</span><span class="p">.</span><span class="nf">Equal</span><span class="p">(</span><span class="nx">n</span><span class="p">,</span> <span class="nx">n2</span><span class="p">)</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">"n == n2"</span><span class="p">)</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
|
||||
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre>
|
||||
</td>
|
||||
</tr>
|
||||
@ -220,7 +238,8 @@ printed with <code>fmt.Println</code>.</p>
|
||||
</span></span></span><span class="line"><span class="cl"><span class="go">map: map[k1:7]
|
||||
</span></span></span><span class="line"><span class="cl"><span class="go">map: map[]
|
||||
</span></span></span><span class="line"><span class="cl"><span class="go">prs: false
|
||||
</span></span></span><span class="line"><span class="cl"><span class="go">map: map[bar:2 foo:1]</span></span></span></code></pre>
|
||||
</span></span></span><span class="line"><span class="cl"><span class="go">map: map[bar:2 foo:1]
|
||||
</span></span></span><span class="line"><span class="cl"><span class="go">n == n2</span></span></span></code></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -239,7 +258,7 @@ printed with <code>fmt.Println</code>.</p>
|
||||
</div>
|
||||
<script>
|
||||
var codeLines = [];
|
||||
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import \"fmt\"\u000A');codeLines.push('func main() {\u000A');codeLines.push(' m :\u003D make(map[string]int)\u000A');codeLines.push(' m[\"k1\"] \u003D 7\u000A m[\"k2\"] \u003D 13\u000A');codeLines.push(' fmt.Println(\"map:\", m)\u000A');codeLines.push(' v1 :\u003D m[\"k1\"]\u000A fmt.Println(\"v1:\", v1)\u000A');codeLines.push(' v3 :\u003D m[\"k3\"]\u000A fmt.Println(\"v3:\", v3)\u000A');codeLines.push(' fmt.Println(\"len:\", len(m))\u000A');codeLines.push(' delete(m, \"k2\")\u000A fmt.Println(\"map:\", m)\u000A');codeLines.push(' clear(m)\u000A fmt.Println(\"map:\", m)\u000A');codeLines.push(' _, prs :\u003D m[\"k2\"]\u000A fmt.Println(\"prs:\", prs)\u000A');codeLines.push(' n :\u003D map[string]int{\"foo\": 1, \"bar\": 2}\u000A fmt.Println(\"map:\", n)\u000A}\u000A');codeLines.push('');
|
||||
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import (\u000A \"fmt\"\u000A \"maps\"\u000A)\u000A');codeLines.push('func main() {\u000A');codeLines.push(' m :\u003D make(map[string]int)\u000A');codeLines.push(' m[\"k1\"] \u003D 7\u000A m[\"k2\"] \u003D 13\u000A');codeLines.push(' fmt.Println(\"map:\", m)\u000A');codeLines.push(' v1 :\u003D m[\"k1\"]\u000A fmt.Println(\"v1:\", v1)\u000A');codeLines.push(' v3 :\u003D m[\"k3\"]\u000A fmt.Println(\"v3:\", v3)\u000A');codeLines.push(' fmt.Println(\"len:\", len(m))\u000A');codeLines.push(' delete(m, \"k2\")\u000A fmt.Println(\"map:\", m)\u000A');codeLines.push(' clear(m)\u000A fmt.Println(\"map:\", m)\u000A');codeLines.push(' _, prs :\u003D m[\"k2\"]\u000A fmt.Println(\"prs:\", prs)\u000A');codeLines.push(' n :\u003D map[string]int{\"foo\": 1, \"bar\": 2}\u000A fmt.Println(\"map:\", n)\u000A');codeLines.push(' n2 :\u003D map[string]int{\"foo\": 1, \"bar\": 2}\u000A if maps.Equal(n, n2) {\u000A fmt.Println(\"n \u003D\u003D n2\")\u000A }\u000A}\u000A');codeLines.push('');
|
||||
</script>
|
||||
<script src="site.js" async></script>
|
||||
</body>
|
||||
|
25
public/slices
generated
25
public/slices
generated
@ -42,7 +42,7 @@ a more powerful interface to sequences than arrays.</p>
|
||||
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="https://go.dev/play/p/553_cYPVlPH"><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/kiy1StxorBF"><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>
|
||||
@ -53,7 +53,10 @@ a more powerful interface to sequences than arrays.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<pre class="chroma"><code><span class="line"><span class="cl"><span class="kn">import</span> <span class="s">"fmt"</span></span></span></code></pre>
|
||||
<pre class="chroma"><code><span class="line"><span class="cl"><span class="kn">import</span> <span class="p">(</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="s">"fmt"</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="s">"slices"</span>
|
||||
</span></span><span class="line"><span class="cl"><span class="p">)</span></span></span></code></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -210,6 +213,21 @@ in a single line as well.</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="docs">
|
||||
<p>The <code>slices</code> package contains a number of useful
|
||||
utility functions for slices.</p>
|
||||
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<pre class="chroma"><code><span class="line"><span class="cl"> <span class="nx">t2</span> <span class="o">:=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"g"</span><span class="p">,</span> <span class="s">"h"</span><span class="p">,</span> <span class="s">"i"</span><span class="p">}</span>
|
||||
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="nx">slices</span><span class="p">.</span><span class="nf">Equal</span><span class="p">(</span><span class="nx">t</span><span class="p">,</span> <span class="nx">t2</span><span class="p">)</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">"t == t2"</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>Slices can be composed into multi-dimensional data
|
||||
@ -256,6 +274,7 @@ they are rendered similarly by <code>fmt.Println</code>.</p>
|
||||
</span></span></span><span class="line"><span class="cl"><span class="go">sl2: [a b c d e]
|
||||
</span></span></span><span class="line"><span class="cl"><span class="go">sl3: [c d e f]
|
||||
</span></span></span><span class="line"><span class="cl"><span class="go">dcl: [g h i]
|
||||
</span></span></span><span class="line"><span class="cl"><span class="go">t == t2
|
||||
</span></span></span><span class="line"><span class="cl"><span class="go">2d: [[0] [1 2] [2 3 4]]</span></span></span></code></pre>
|
||||
</td>
|
||||
</tr>
|
||||
@ -300,7 +319,7 @@ Go’s other key builtin data structure: maps.</p>
|
||||
</div>
|
||||
<script>
|
||||
var codeLines = [];
|
||||
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import \"fmt\"\u000A');codeLines.push('func main() {\u000A');codeLines.push(' var s []string\u000A fmt.Println(\"uninit:\", s, s \u003D\u003D nil, len(s) \u003D\u003D 0)\u000A');codeLines.push(' s \u003D make([]string, 3)\u000A fmt.Println(\"emp:\", s, \"len:\", len(s), \"cap:\", cap(s))\u000A');codeLines.push(' s[0] \u003D \"a\"\u000A s[1] \u003D \"b\"\u000A s[2] \u003D \"c\"\u000A fmt.Println(\"set:\", s)\u000A fmt.Println(\"get:\", s[2])\u000A');codeLines.push(' fmt.Println(\"len:\", len(s))\u000A');codeLines.push(' s \u003D append(s, \"d\")\u000A s \u003D append(s, \"e\", \"f\")\u000A fmt.Println(\"apd:\", s)\u000A');codeLines.push(' c :\u003D make([]string, len(s))\u000A copy(c, s)\u000A fmt.Println(\"cpy:\", c)\u000A');codeLines.push(' l :\u003D s[2:5]\u000A fmt.Println(\"sl1:\", l)\u000A');codeLines.push(' l \u003D s[:5]\u000A fmt.Println(\"sl2:\", l)\u000A');codeLines.push(' l \u003D s[2:]\u000A fmt.Println(\"sl3:\", l)\u000A');codeLines.push(' t :\u003D []string{\"g\", \"h\", \"i\"}\u000A fmt.Println(\"dcl:\", t)\u000A');codeLines.push(' twoD :\u003D make([][]int, 3)\u000A for i :\u003D 0; i \u003C 3; i++ {\u000A innerLen :\u003D i + 1\u000A twoD[i] \u003D make([]int, innerLen)\u000A for j :\u003D 0; j \u003C innerLen; j++ {\u000A twoD[i][j] \u003D i + j\u000A }\u000A }\u000A fmt.Println(\"2d: \", twoD)\u000A}\u000A');codeLines.push('');codeLines.push('');codeLines.push('');
|
||||
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import (\u000A \"fmt\"\u000A \"slices\"\u000A)\u000A');codeLines.push('func main() {\u000A');codeLines.push(' var s []string\u000A fmt.Println(\"uninit:\", s, s \u003D\u003D nil, len(s) \u003D\u003D 0)\u000A');codeLines.push(' s \u003D make([]string, 3)\u000A fmt.Println(\"emp:\", s, \"len:\", len(s), \"cap:\", cap(s))\u000A');codeLines.push(' s[0] \u003D \"a\"\u000A s[1] \u003D \"b\"\u000A s[2] \u003D \"c\"\u000A fmt.Println(\"set:\", s)\u000A fmt.Println(\"get:\", s[2])\u000A');codeLines.push(' fmt.Println(\"len:\", len(s))\u000A');codeLines.push(' s \u003D append(s, \"d\")\u000A s \u003D append(s, \"e\", \"f\")\u000A fmt.Println(\"apd:\", s)\u000A');codeLines.push(' c :\u003D make([]string, len(s))\u000A copy(c, s)\u000A fmt.Println(\"cpy:\", c)\u000A');codeLines.push(' l :\u003D s[2:5]\u000A fmt.Println(\"sl1:\", l)\u000A');codeLines.push(' l \u003D s[:5]\u000A fmt.Println(\"sl2:\", l)\u000A');codeLines.push(' l \u003D s[2:]\u000A fmt.Println(\"sl3:\", l)\u000A');codeLines.push(' t :\u003D []string{\"g\", \"h\", \"i\"}\u000A fmt.Println(\"dcl:\", t)\u000A');codeLines.push(' t2 :\u003D []string{\"g\", \"h\", \"i\"}\u000A if slices.Equal(t, t2) {\u000A fmt.Println(\"t \u003D\u003D t2\")\u000A }\u000A');codeLines.push(' twoD :\u003D make([][]int, 3)\u000A for i :\u003D 0; i \u003C 3; i++ {\u000A innerLen :\u003D i + 1\u000A twoD[i] \u003D make([]int, innerLen)\u000A for j :\u003D 0; j \u003C innerLen; j++ {\u000A twoD[i][j] \u003D i + j\u000A }\u000A }\u000A fmt.Println(\"2d: \", twoD)\u000A}\u000A');codeLines.push('');codeLines.push('');codeLines.push('');
|
||||
</script>
|
||||
<script src="site.js" async></script>
|
||||
</body>
|
||||
|
Loading…
x
Reference in New Issue
Block a user