[ja] apply patch

This commit is contained in:
Shin Kojima
2015-03-23 23:05:58 +09:00
parent 215bc46541
commit e772f523e1

View File

@@ -227,8 +227,6 @@ Go言語では、複数の定数・変数を宣言する場合、または複数
prefix string
)
>他の値や`iota`に設定されているものを除いて、各`const`グループのはじめの定数はデフォルトで0となります。二番目以降の定数は前の定数の値がデフォルト値となります。もし前の定数の値が`iota`であれば、直後の値も`iota`になります。
### iota列挙型
Goでは`iota`というキーワードがあります。このキーワードは`enum`を宣言する際に使用されます。このデフォルト値は0からはじまり、順次1が追加されます
@@ -246,6 +244,8 @@ Goでは`iota`というキーワードがあります。このキーワードは
e, f, g = iota, iota, iota //e=0,f=0,g=0 iotaの同一行は同じです
)
>他の値や`iota`に設定されているものを除いて、各`const`グループのはじめの定数はデフォルトで0となります。二番目以降の定数は前の定数の値がデフォルト値となります。もし前の定数の値が`iota`であれば、直後の値も`iota`になります。
### Goプログラムのデザインルール
Goがこのように簡潔なのは、それがいくつかのデフォルトの行為を持っているからです
- 大文字で始まる変数はエクスポート可能です。つまり、他のパッケージから読むことができる、パブリックな変数だということです。対して小文字で始まる変数はエクスポートできません。これはプライベート変数です。
@@ -379,6 +379,19 @@ sliceには便利な操作があります
注:`append`関数は`slice`が参照した配列の内容を変更し得ます。そのため、参照先と同一の配列の他の`slice`にも影響します。
しかし`slice`の中に余分なスペースが無い(`(cap-len) == 0`)場合、動的なメモリから新たな配列空間が割り当てられます。返される`slice`配列のポインタはこの空間を指しています。また、もとの配列の内容は変わりません。この配列を参照している他の`slice`は影響を受けません。
Go1.2より、sliceは三引数のsliceをサポートするようになりました。以前まで我々は以下のような方法でsliceまたはarrayからsliceを取り出していました
var array [10]int
slice := array[2:4]
この例ではsliceの要素数は8で、新しいバージョンでは以下のように要素数を指定することができます
slice = array[2:4:7]
上の要素数は`7-2`、即ち5となります。このように生成された新しいsliceでは最後の3つの要素にアクセスする方法がなくなります。
もしsliceが`array[:i:j]`のような形式だった場合は、第一引数は空と見なされ、デフォルトの0となります。
### map
`map`の概念もPythonのディクショナリです。この形式は`map[keyType]valueType`です。
@@ -448,6 +461,8 @@ mapを使う段階で注意しなければならないことがいくつかあ
図2.5 makeとnewの低レイヤでのメモリの割り当て
## ゼロ値
"ゼロ値"というのは何も空の値ではありません。これは一種の"変数が埋めらる前"のデフォルト値であり、通常は0です。
それぞれの型のゼロ値は以下の通りです