【Go言語】定まった数? Constants

2018年10月10日GoConstants,Go言語,定数Go,Go言語,定数

もう少しで一段落な「A Tour of Go」です。

めちゃくちゃ亀進行なわけですが、今回も1ページだけ進めていきます。

ということで以下内容。

今回のお題は「Constants」でっす

ようやく変数シリーズを抜け出せたみたいですね~。

といっても今度は「Constants」ってことなんで、ん~まぁ毛色が変わる程度の変化でしょうかね。

お題のページはこちらになりまーす

いつものようにURLはおいておきますね…っと(´・ω・)つhttps://go-tour-jp.appspot.com/basics/15

A Tour of Go - Constants のページ
A Tour of Go – Constants のページ

タイトルを翻訳する

一応意味はわかってるんですが、間違いがないように Google 先生に聞いてみますと…、「Constants」とは「定数」ということでした~。

これまでお題に上がっていた「変数」ってのは、変わる数ってことで、値がコロコロ変えられるものでした。

これに対して今回は、定まった数ってことで、値を変更できないもの、つまり定数ってのをお勉強するようです。

ページの内容を読んでみる

数行と短い内容となってますが、ポイントを上げるとすれば…

  • 定数宣言には const キーワードを使う
  • 特定の型のみ定数として扱える
  • 定数の宣言では「:=」が使えない

ということみたいですね。

それじゃ~順番に見ていきます。

定数宣言には const キーワードを使う

定数宣言では const キーワードを使うってことなんですが、var キーワードを使った変数宣言の var 部分を const にするような感じで行けるっぽいです。

const<定数名> = <初期値>

サンプルプログラムを参考に、実際に宣言してみます。

こんな感じで宣言できるようですね。

特定の型のみ定数として扱える

定数の宣言方法はわかったんですが、この定数として扱えるに条件があるようです。

  • 文字(character) ※rune かな?
  • 文字列(string)
  • 真偽値(boolean)
  • 数値(numeric)※int,float とかかな?

一応定数として扱える型は上記になるようですが、具体的な例を知りたい場合は「Go言語仕様 – Constant expressions」あたりを見ると一通り書いてあるので参考になるかと思います。

一部引用してみるとこんな感じです。

const a = 2 + 3.0 // a == 5.0 (untyped floating-point constant)
const b = 15 / 4 // b == 3 (untyped integer constant)
const c = 15 / 4.0 // c == 3.75 (untyped floating-point constant)
const Θ float64 = 3/2 // Θ == 1.0 (type float64, 3/2 is integer division)
const Π float64 = 3/2. // Π == 1.5 (type float64, 3/2. is float division)
const d = 1 << 3.0 // d == 8 (untyped integer constant)
const e = 1.0 << 3 // e == 8 (untyped integer constant)
const f = int32(1) << 33 // illegal (constant 8589934592 overflows int32)
const g = float64(2) >> 1 // illegal (float64(2) is a typed floating-point constant)
const h = “foo" > “bar" // h == true (untyped boolean constant)
const j = true // j == true (untyped boolean constant)
const k = 'w’ + 1 // k == 'x’ (untyped rune constant)
const l = “hi" // l == “hi" (untyped string constant)
const m = string(k) // m == “x" (type string)
const Σ = 1 – 0.707i // (untyped complex constant)
const Δ = Σ + 2.0e-4 // (untyped complex constant)
const Φ = iota*1i – 1/1i // (untyped complex constant)

定数の宣言では「:=」が使えない

書いてある通りだとは思うんですが、実際にやってみましょ。

こういうことなんでしょうか…?(^_^;)

まぁ、結果としては下記のエラーが返されてうまく動きません。

prog.go:8:8: missing value in const declaration
prog.go:8:14: syntax error: unexpected := at end of statement

今回のまとめ

今回は「Constants(定数)」についてのお題でした。

これまでに触ってきた変数もですが、今回の定数もプログラミングでは頻繁に使うものではあるので書き方等々しっかりと覚えて置きたいところです。

とゆーわけで、また次回~。٩(๑´3`๑)۶