【Go言語】数字な定数 Numeric Constants

2018年10月17日GoGo言語,定数Go,定数

最近忙しくて少し間が開いちゃいましたが、今回も「A Tour of Go」を進めていきます。

そしてこれまでの記事で進めてきた「Packages, variables, functions.」の章ですが、今回で最後のお題になるようです。

ページ的にはもう1ページあったんですが~~…

ん~、まぁ、それじゃ~早速内容を見てみますか。

今回のお題のページね

何時も通りですがURLをおいておきますね…っと(´・ω・)つhttps://go-tour-jp.appspot.com/basics/16

A Tour of Go - Numeric constants のページ
A Tour of Go – Numeric constants のページ

今回のお題を確認する

前回に続いて今回も定数に関するお題のようです。

ちなみに「Numeric Constants」の意味は「数値定数」らしいです。(´・ω・)<グーグルセンセイガイッテタ

今回のポイント

え~と、読むだけなら1分かからずなんですけど、ちょっとだけややこしい内容かなーー?…、と感じました。

とりあえずポイントを抜き出してみますとね…

  • 数値型の定数は高精度(?)
  • 型指定のない定数は自動判別

という感じでしょうかね~。

前回にもちらっと触れたかなー?な箇所もある気がするんですけど、それはそれとして順番に見ていきます。

数値型の定数は高精度(?)

説明文中に、、、

数値の定数は、高精度な 値 ( values )です。

っていう箇所があります。

「高精度」…、つまり「沢山の桁を表現できますよ!」ってことを言ってるんだと思うんですが、数値タイプの定数が実際に扱える精度って下記の範囲っぽいんですよね~。

32bit システムの場合:-2147483648 ~ 2147483647

64bit システムの場合:-9223372036854775808 ~ 9223372036854775807

というわけで、int型と同等…というか、もろint型なわけです。∩(´ε` )ハイ…

これを高精度と言っていいのかチョットもにょりますけど、まぁ実態としてはこういうことです。

※私の捉え方が間違ってたらコメント下さい。(´・ω・`)

型指定のない定数は自動判別

定数を宣言するとき自動で適切な型が割り当てられますよ~、ってことですね。

判別基準としては、初期化値(右辺のリテラル値ね)に応じた型になるようです。

例えば…


という風に、初期化値に応じた型が選択されることが確認できました。

サンプルソースはスルーします

というのも、ビット演算が出てきちゃっていて、今回のお題からブレちゃいそうなのでスルーの方向で…。((((´・ω・))))ブレブレブレ

よくわからない説明…

私の読解力が無いだけかもしれませんが、いまいちわからない箇所があったんですよね。

int は64-bitの整数を保持できますが、それでは足りないことが時々あります。そういったときにconstを活用しましょう

この部分なんですが、前述したとおり数値タイプの定数の実態は int型 です。

説明を読むと、「int型 を超える精度を扱うときは const を活用してね!」と捉えることができるんですけど、「const」だろうが int型 は int型 です。

扱える精度は変わらないと思うので「???」となってるんですよね。(´・ω・`)

で、何度読んでもよくわからなかったので、原文の方を見てみたところ…

An int can store at maximum a 64-bit integer, and sometimes less.

(intは、最大で64ビットの整数を格納できます。 )※Google翻訳

となっていました。

う~~む。。。

そういうわけで、気にしない方向で行きたいと思います。(・∀・)ナニモミナカッタ

今回のまとめ

今回は定数その2的な内容でしたが、ちょっとまとめ直してみますと…

  • 数値タイプの定数は int型 が適用されるんです
  • 定数の型を指定しないときは初期化値に応じて決定されるんです

といったところですね。

そして今回で基礎の基礎的な「Packages, variables, and functions.」の章が終了しました。(´・ω・)b

ただ、ページ自体はもう1ページ分残っていて、なんのお題か見たところ……

A Tour of Go - Congratulations! のページ
A Tour of Go – Congratulations! のページ

と、おしまいです的なページがあるだけでしたので、次回からは新章に突入予定となりました。

つーわけで、今回はここまで。

それじゃ~また次回~。٩(๑´3`๑)۶

GoGo言語,定数Go,定数

Posted by うっしー