mirror of
https://github.com/teivah/100-go-mistakes.git
synced 2026-06-21 00:47:11 +08:00
Japanese, typo.
This commit is contained in:
parent
38fe87d4cb
commit
668d6165fe
5 changed files with 1512 additions and 52 deletions
|
|
@ -3069,7 +3069,7 @@ Meanwhile, we should also look at golangci-lint (<a href="https://github.com/gol
|
|||
<summary>TL;DR</summary>
|
||||
<p>To check if a slice doesn’t contain any element, check its length. This check works regardless of whether the slice is <code>nil</code> or empty. The same goes for maps. To design unambiguous APIs, you shouldn’t distinguish between nil and empty slices.</p>
|
||||
</details>
|
||||
<p>To determine whether a slice has elements, we can either do it by checking if the slice is nil or if its length is equal to 0. Checking the length is the best option to follow as it will cover both if the slice is empty or is the slice is nil.</p>
|
||||
<p>To determine whether a slice has elements, we can either do it by checking if the slice is nil or if its length is equal to 0. Checking the length is the best option to follow as it will cover both if the slice is empty or if the slice is nil.</p>
|
||||
<p>Meanwhile, when designing interfaces, we should avoid distinguishing nil and empty slices, which leads to subtle programming errors. When returning slices, it should make neither a semantic nor a technical difference if we return a nil or empty slice. Both should mean the same thing for the callers. This principle is the same with maps. To check if a map is empty, check its length, not whether it’s nil.</p>
|
||||
<p><a href="https://github.com/teivah/100-go-mistakes/tree/master/src/03-data-types/23-checking-slice-empty/main.go">Source code <span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></span></a></p>
|
||||
<h3 id="not-making-slice-copies-correctly-24">Not making slice copies correctly (#24)</h3>
|
||||
|
|
@ -3717,7 +3717,7 @@ the use case. However, we should see the two options as complementary. </p>
|
|||
<p>We can prevent a data race from happening using different techniques. For example: </p>
|
||||
<ul>
|
||||
<li>Using the <code>sync/atomic</code> package</li>
|
||||
<li>In synchronizing the two goroutines with an ad how data structure like a mutex</li>
|
||||
<li>In synchronizing the two goroutines with an ad hoc data structure like a mutex</li>
|
||||
<li>Using channels to make the two goroutines communicating to ensure that a variable is updated by only one goroutine at a time</li>
|
||||
</ul>
|
||||
<h4 id="race-condition">Race Condition</h4>
|
||||
|
|
|
|||
1532
site/ja/index.html
1532
site/ja/index.html
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
|
|
@ -2,67 +2,67 @@
|
|||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://100go.co/</loc>
|
||||
<lastmod>2023-10-10</lastmod>
|
||||
<lastmod>2023-10-14</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://100go.co/20-slice/</loc>
|
||||
<lastmod>2023-10-10</lastmod>
|
||||
<lastmod>2023-10-14</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://100go.co/28-maps-memory-leaks/</loc>
|
||||
<lastmod>2023-10-10</lastmod>
|
||||
<lastmod>2023-10-14</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://100go.co/56-concurrency-faster/</loc>
|
||||
<lastmod>2023-10-10</lastmod>
|
||||
<lastmod>2023-10-14</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://100go.co/89-benchmarks/</loc>
|
||||
<lastmod>2023-10-10</lastmod>
|
||||
<lastmod>2023-10-14</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://100go.co/9-generics/</loc>
|
||||
<lastmod>2023-10-10</lastmod>
|
||||
<lastmod>2023-10-14</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://100go.co/98-profiling-execution-tracing/</loc>
|
||||
<lastmod>2023-10-10</lastmod>
|
||||
<lastmod>2023-10-14</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://100go.co/book/</loc>
|
||||
<lastmod>2023-10-10</lastmod>
|
||||
<lastmod>2023-10-14</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://100go.co/chapter-1/</loc>
|
||||
<lastmod>2023-10-10</lastmod>
|
||||
<lastmod>2023-10-14</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://100go.co/external/</loc>
|
||||
<lastmod>2023-10-10</lastmod>
|
||||
<lastmod>2023-10-14</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://100go.co/ja/</loc>
|
||||
<lastmod>2023-10-10</lastmod>
|
||||
<lastmod>2023-10-14</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://100go.co/jobs/</loc>
|
||||
<lastmod>2023-10-10</lastmod>
|
||||
<lastmod>2023-10-14</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://100go.co/zh/</loc>
|
||||
<lastmod>2023-10-10</lastmod>
|
||||
<lastmod>2023-10-14</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
</urlset>
|
||||
Binary file not shown.
Loading…
Reference in a new issue