File tree 1 file changed +2
-2
lines changed
1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change @@ -102,7 +102,7 @@ Goにで最も強力なロジックコントロールといえば、`for`です
102
102
103
103
` break ` と` continue ` はタグを添えることができます。複数ネストしたループで外側のループからジャンプする際に使用されます。
104
104
105
- ` for ` は` range ` と組み合わせて` slice ` と ` map ` のデータを読み込むことができます:
105
+ ` for ` は` range ` と組み合わせて` array ` 、 ` slice ` 、 ` map ` 、 ` string ` のデータを読み込むことができます:
106
106
107
107
for k,v:=range map {
108
108
fmt.Println("map's key:",k)
@@ -321,7 +321,7 @@ Goの関数は可変長引数をサポートしています。可変長引数を
321
321
322
322
- ポインタを渡すことで複数の関数が同じオブジェクトに対して操作を行うことができます。
323
323
- ポインタ渡しは比較的軽いです(8バイト)、ただのメモリのアドレスです。ポインタを使って大きな構造体を渡すことができます。もし値渡しを行なっていたら、相対的にもっと多くのシステムリソース(メモリと時間)を毎回のコピーで消費することになります。そのため大きな構造体を渡す際は、ポインタを使うのが賢い選択というものです。
324
- - Go言語の` string ` 、` slice ` 、` map ` の3つの型はメカニズムを実現するポインタのようなものです。ですので、直接渡すことができますので、アドレスを取得してポインタを渡す必要はありません。(注:もし関数が` slice ` の長さを変更する場合はアドレスを取得し、ポインタを渡す必要があります。)
324
+ - Go言語の` channel ` 、` slice ` 、` map ` の3つの型はメカニズムを実現するポインタのようなものです。ですので、直接渡すことができますので、アドレスを取得してポインタを渡す必要はありません。(注:もし関数が` slice ` の長さを変更する場合はアドレスを取得し、ポインタを渡す必要があります。)
325
325
326
326
### defer
327
327
Go言語のすばらしいデザインの中に、遅延(defer)文法があります。関数の中でdefer文を複数追加することができます。関数が最後まで実行された時、このdefer文が逆順に実行されます。最後にこの関数が返ります。特に、リソースをオープンする操作を行なっているようなとき、エラーの発生に対してロールバックし、必要なリソースをクローズする必要があるかと思います。さもなければとても簡単にリソースのリークといった問題を引き起こすことになります。我々はリソースを開く際は一般的に以下のようにします:
You can’t perform that action at this time.
0 commit comments