Skip to content

Commit 2ec43b1

Browse files
committed
Update ja/02.3.md
1 parent 27d9bce commit 2ec43b1

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

ja/02.3.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ Goにで最も強力なロジックコントロールといえば、`for`です
102102

103103
`break``continue`はタグを添えることができます。複数ネストしたループで外側のループからジャンプする際に使用されます。
104104

105-
`for``range`と組み合わせて`slice``map`のデータを読み込むことができます:
105+
`for``range`と組み合わせて`array``slice``map``string`のデータを読み込むことができます:
106106

107107
for k,v:=range map {
108108
fmt.Println("map's key:",k)
@@ -321,7 +321,7 @@ Goの関数は可変長引数をサポートしています。可変長引数を
321321

322322
- ポインタを渡すことで複数の関数が同じオブジェクトに対して操作を行うことができます。
323323
- ポインタ渡しは比較的軽いです(8バイト)、ただのメモリのアドレスです。ポインタを使って大きな構造体を渡すことができます。もし値渡しを行なっていたら、相対的にもっと多くのシステムリソース(メモリと時間)を毎回のコピーで消費することになります。そのため大きな構造体を渡す際は、ポインタを使うのが賢い選択というものです。
324-
- Go言語の`string``slice``map`の3つの型はメカニズムを実現するポインタのようなものです。ですので、直接渡すことができますので、アドレスを取得してポインタを渡す必要はありません。(注:もし関数が`slice`の長さを変更する場合はアドレスを取得し、ポインタを渡す必要があります。)
324+
- Go言語の`channel``slice``map`の3つの型はメカニズムを実現するポインタのようなものです。ですので、直接渡すことができますので、アドレスを取得してポインタを渡す必要はありません。(注:もし関数が`slice`の長さを変更する場合はアドレスを取得し、ポインタを渡す必要があります。)
325325

326326
### defer
327327
Go言語のすばらしいデザインの中に、遅延(defer)文法があります。関数の中でdefer文を複数追加することができます。関数が最後まで実行された時、このdefer文が逆順に実行されます。最後にこの関数が返ります。特に、リソースをオープンする操作を行なっているようなとき、エラーの発生に対してロールバックし、必要なリソースをクローズする必要があるかと思います。さもなければとても簡単にリソースのリークといった問題を引き起こすことになります。我々はリソースを開く際は一般的に以下のようにします:

0 commit comments

Comments
 (0)