「Go/変数」の版間の差分
削除された内容 追加された内容
フォーマット指定子 |
→小数以外のビット精度: 低精度整数型の用途 タグ: 2017年版ソースエディター |
||
183 行
=== 小数以外のビット精度 ===
int32
189 行
int64
などの区別がある。
さらに、int8やint16などもある。
:しかしint8の範囲は -128~127 なので、有効数字2~3ケタの範囲で
:int16 の範囲も -32768~32767 というふうに有効数字5ケタ程度
このような低精度、省フットプリントの整数型にニーズがないと感じることがあるかもしれないが、回帰型ニューラルネットワークなどの人工知能応用では精度は必ずしも必要なく、メモリーフットプリントの削減と計算時間の削減という意味で今後もニーズがあります。
:int32の範囲 は -2147483647 ~ 2147483647 です。
:int32の範囲 は -9223372036854775808 ~ 9223372036854775807 です。
{|class="wikitable"
207 ⟶ 204行目:
! データ型 !! データ型の説明 !! ストレージの <br>ビット長 !! 範囲
|-
▲<!--||-->| int8 || 符号あり8ビット整数 || 8 || -128 ~ 127
|-
|-
|-
|-
| uint8 || 符号なし8ビット整数 || 8 || 0 ~ 255
|-
| uint16 || 符号なし16ビット整数 || 16 || 0 ~ 65535
|-
|-
|-
| int || システムに依存 の 符号あり整数 || <!-- 空白 --> || <!-- 空白 -->
|-
| uint || システムに依存 の 符号なし整数 || <!-- 空白 --> || <!-- 空白 -->
|}
238 ⟶ 231行目:
なので、符号ありの整数では、intの前に、なんの接頭辞もつけないのです。
uint64 などの頭文字「u」は、unsigned (符号なし、「アンサインド」と読む)の意味です。数学のプラスマイナスの符号のことを英語で「sign」(サイン)といい、その符号が無いので、打ち消しの接頭辞 un をともない、unsigned という意味です。
特別な事情のないかぎり、整数型の指定のときには「int」とだけ入力しておけば、Go言語コンパイラが、アーキテクチャにもとづき、自動でビット精度を判断してくれますので、なるべく「int」とだけ入力してコンパイラに任せておくのが簡便でしょう。
▲uint64 などの頭文字「u」は、unsigned (符号なし、「アンサインド」と読む)の意味です。数学のプラスマイナスの符号のことを英語で「sign」(サイン)といい、その符号が無いので、打ち消しの接頭辞 un をともない、unsigned という意味です。(語尾 ed は、過去分詞の形容詞用法でしょう。これは高校レベルの英文法の話題ですので、説明を省略します。)
▲特別な事情のないかぎり、整数型の指定のときには「int」とだけ入力しておけば、Go言語コンパイラが、アーキテクチャにもとづき、自動でビット精度を判断してくれますので、なるべく「int」とだけ入力してコンパイラに任せておくのが簡便でしょう。(なおC言語の場合、コンパイラにもよりますが2010年ごろのC言語の「int」は通常、32ビット精度の整数を割り当てます。このように、Go言語の「int」とC言語の「int」は割り当ての使用が違いますので、混同しないように。)
==== ローカル変数 ====
271 ⟶ 254行目:
import "fmt"
func main() {
338 ⟶ 320行目:
ただし「variant」のように変数名の一部に予約語の文字列が入っている場合は使用じたいは可能です。(ただし、検索などの際に、まぎらわしいので、避けたほうが安全で
少なくとも次の25個の文字列は、それぞれGo言語の予約語であるので、Go言語では変数名には使えない文字列です。
|