Go言語で定数を定義する方法!変更されない値の書き方と命名ルール
生徒
「Go言語で、途中で変わらない値を使いたいときはどうすればいいですか?」
先生
「そのときはconstというキーワードを使って、定数を定義するんです。」
生徒
「定数って、変数とは違うんですか?」
先生
「はい。定数は、最初に決めたら途中で変えられない値のことです。では、Go言語で定数をどう使うか、一緒に見ていきましょう。」
1. Go言語で定数を定義する基本構文
Go言語で「途中で変わらない値」を扱いたいときは、constキーワードで定数(constant)を定義します。定数は一度決めた値をあとから変更できないため、プログラムの中で基準になる数値や決まりごとを安全に管理できます。
たとえば、円周率(3.14)や、サービスの基本料金、上限回数など「毎回同じ意味で使う値」を定数にしておくと、数字を直接書くよりも読みやすくなります。
基本の書き方は次のとおりです。
const pi = 3.14
このように書くと、piは3.14で固定され、途中で別の値に置き換えることはできません。
プログラミング未経験でもイメージしやすい例として、「入場料」を定数にしてみましょう。料金は基本的に勝手に変わってほしくないので、定数に向いています。
package main
import "fmt"
func main() {
const entryFee = 500
fmt.Println("入場料は", entryFee, "円です")
}
entryFeeのように名前を付けておくと、「500が何の数字なのか」が一目でわかります。Go言語で定数を定義する基本として、まずは「変えたくない値はconst」と覚えておくと安心です。
2. constとvarの違いとは?
constは定数、varは変数です。どちらも「値に名前を付ける」点は同じですが、決定的な違いはあとから値を変えられるかどうかにあります。
たとえば年齢やカウント数のように、処理の途中で増えたり更新されたりするものは変数(var)が向いています。一方で、消費税率や上限値など「プログラム内で固定したい値」は定数(const)にしておくと、意図しない書き換えを防げます。
var age = 20
age = 21 // OK:変数なので変更できる
const taxRate = 0.1
taxRate = 0.08 // エラー:定数は変更できない
もう少しイメージしやすいように、「値段は固定、人数は変わる」という例で見てみましょう。チケット代は固定なのでconst、購入人数は変わるのでvarを使います。
package main
import "fmt"
func main() {
const ticketPrice = 500
var people = 2
fmt.Println("チケット代は", ticketPrice, "円です")
fmt.Println("人数は", people, "人です")
people = 3 // 人数は変わるので更新できる
fmt.Println("人数が増えて", people, "人になりました")
}
このように、constは「固定したい値」、varは「変化する値」という使い分けを意識すると、Go言語のコードが読みやすくなり、ミスも減らせます。
プログラムの中で「この値は絶対に変わらない」と言い切れるものは、定数にしておくことで、うっかり間違えて変更することを防げます。
3. 定数に使えるデータの種類
Go言語の定数(const)に使えるデータの種類は限られていて、基本はシンプルで変更の必要がない値だけが対象になります。イメージとしては「数字」「文字」「真偽(はい/いいえ)」のような、動かない情報です。
主に次のような型が定数として扱えます:
- 整数(int:0、1、100などの数)
- 浮動小数点数(float64など:3.14、0.1などの小数)
- 文字列(string:"ようこそ" のような文字)
- ブール値(bool:true / false)
const maxScore = 100
const message = "ようこそ"
const isActive = true
プログラミング未経験でも想像しやすいように、「お店のルール」を定数でまとめた例を見てみましょう。値段や合言葉、営業中かどうかなどは、基本的に途中で勝手に変わってほしくないので定数向きです。
package main
import "fmt"
func main() {
const price = 1200
const keyword = "WELCOME"
const open = true
fmt.Println("料金は", price, "円です")
fmt.Println("合言葉は", keyword, "です")
fmt.Println("営業中ですか?", open)
}
この例では、数値・文字列・true/falseの3種類を定数として使っています。どれも「決めたら変えない前提」の情報なので、定数として持たせるとわかりやすいです。
一方で、配列やスライス、マップのように中身を追加したり削除したりできるデータ構造は、性質的に「変更される」ことが前提なので、Go言語の定数にはできません。
4. 定数のグループ化(複数定義)
Go言語では、定数を1つずつ書くこともできますが、同じテーマの定数が複数あるときは、const ( ... )の形でまとめて定義できます。これを「定数のグループ化」と呼び、関連する値をひとまとまりで管理しやすくするのが目的です。
たとえば色の名前や、メニューの区分、画面表示の種類など、「セットで使う値」は同じ場所に並べておくと、後から見返したときに探しやすくなります。定数が増えても整理された状態を保てるので、初心者ほど最初から意識しておくと安心です。
const (
Red = "赤"
Blue = "青"
Green = "緑"
)
もう少し身近な例として、「ドリンクのサイズ」をまとめてみましょう。サイズは種類が増えても、同じグループとして扱うことが多いので、まとめ書きが便利です。
package main
import "fmt"
const (
SizeSmall = "S"
SizeMedium = "M"
SizeLarge = "L"
)
func main() {
fmt.Println("選べるサイズは", SizeSmall, SizeMedium, SizeLarge, "です")
}
このように定数をグループ化しておくと、「サイズに関する定数はここ」と場所が決まるため、追加や修正もしやすくなります。結果として、Go言語のコード全体が読みやすく整理されます。
このようにまとめて定義しておくと、関連する定数を一か所で管理できて便利です。
5. 定数の命名ルールと書き方のコツ
定数の名前は、大文字から始めるのが一般的です(特に外部から使う場合)。
Pi、TaxRateのように、意味がわかる名前をつける- すべて大文字で
MAX_COUNTのように書くスタイルもあります(プロジェクトによる)
また、定数は「変わらない意味を名前から伝える」ことが大切です。
6. 定数を使うメリットとは?
定数を使うことで、以下のようなメリットがあります:
- 変更できない安心感:うっかり間違えて書き換えるのを防げる
- 意味が明確:値に名前をつけることで、読みやすいコードになる
- 修正が簡単:定数の値を1か所変えれば、すべての使用箇所に反映される
たとえば、消費税率を0.1にしているコードがあった場合、後から変更になっても、定数を修正するだけで対応できます。
まとめ
Go言語における定数の扱いは、プログラムの信頼性や読みやすさを大きく高めるために欠かせない概念です。定数は一度値を決めたら変更できないという特性を持つため、「途中で変えてはいけない値」を扱うときに非常に重要な役割を果たします。記事全体で学んできたように、定数はconstキーワードを使って宣言し、整数や文字列、浮動小数点数など、変化の必要がないデータを安全に管理できます。たとえば、円周率や消費税率のように変更があると誤動作につながってしまう重要な値を定数にすることで、プログラム全体の誤りを防げます。
また、定数はプログラムの可読性向上にも大きく貢献します。値に名前をつけることで、その値が何を意味しているのかを明確に伝えられ、コードを読む人が文脈を理解しやすくなります。定数を適切に使うことは、初心者にこそ身につけてほしい習慣であり、長いプログラムでも迷わず理解しやすくなるため、開発効率の向上にもつながります。
さらに、定数をグループ化できるという特徴も大きな利点です。複数の関連する値をひとつのまとまりとして整理すると、プログラムの構造がよりはっきりと見えるようになり、色やステータスのように複数の選択肢がある場合にも管理がしやすくなります。Go言語では()で囲むことで簡単にグループ化できるため、整理整頓されたコードを書くための便利な手法として活用できます。定数の命名ルールでは大文字で始めるという慣習があり、外部公開用の定数であることを示せるため、パッケージ間の設計においても重要な役割を果たします。
定数と変数の違いを理解することは、プログラムを書く上での基礎力を養うことにつながります。変数は値を変えながら処理を進めるときに使い、一方で定数は絶対に変わらない前提の値を扱うときに使用します。初心者がよくやってしまう失敗として、「変わらない値なのに変数を使ってしまう」というパターンがありますが、定数を使うことで後のミスを未然に防げます。定数を使うと、値の意味が明確になり、コードに意図が自然と表れるため、複雑な処理でも迷わず進められるようになります。
理解を深めるための定数サンプルコード
ここで、定数の特徴をしっかり意識したサンプルプログラムを紹介します。実際に書きながら定数の便利さを感じてみましょう。
package main
import "fmt"
const (
AppName = "SampleApp"
MaxUsers = 100
TaxRate = 0.1
WelcomeMsg = "ようこそ!定数の世界へ"
)
func main() {
fmt.Println("アプリ名:", AppName)
fmt.Println("最大利用者数:", MaxUsers)
fmt.Println("消費税率:", TaxRate)
fmt.Println("メッセージ:", WelcomeMsg)
}
このサンプルでは、アプリ名、最大人数、税率、メッセージなど、途中で変わる必要がない値をすべて定数として定義しています。実際の開発では、環境設定やエラーコードなど、変更しない値が多く存在します。そのため、定数を使いこなせるとアプリケーション全体の管理がとても楽になります。
生徒
「定数って、最初は変数と何が違うのかよく分からなかったんですが、変わらない値を扱うためにすごく便利なんですね!」
先生
「そうなんです。定数を使うことで誤って値を変えてしまうミスを防げますし、コード全体の意味も伝わりやすくなります。」
生徒
「グループ化できるのも便利だと思いました。色や種類をまとめて管理できるのはわかりやすいです!」
先生
「ええ。整理されたコードは保守もしやすくなりますからね。今のうちに定数を使いこなしておくと、今後もっと複雑なプログラムでも困らなくなりますよ。」
生徒
「今日学んだことを意識して、これから書くプログラムでも積極的に使ってみます!」
この記事を読んだ人からの質問
プログラミング初心者からのよくある疑問/質問を解決します
Go言語で定数を定義するには何を使えばいいですか?
Go言語で定数を定義するには、constというキーワードを使います。constを使うことで、一度決めた値を変更不可にでき、プログラムの安全性が向上します。
【超入門】ゼロから始めるGo言語プログラミング:最速で「動くアプリ」を作るマンツーマン指導
「プログラミングの仕組み」が根本からわかる。Go言語でバックエンド開発の第一歩を。
本講座を受講することで、単なる文法の暗記ではなく、「プログラムがコンピュータの中でどう動いているか」という本質的な理解につながります。シンプルながら強力なGo言語(Golang)を通じて、現代のバックエンドエンジニアに求められる基礎体力を最短距離で身につけます。
具体的な開発内容と環境
【つくるもの】
ターミナル(黒い画面)上で動作する「対話型計算プログラム」や、データを整理して表示する「ミニ・ツール」をゼロから作成します。自分の書いたコードが形になる感動を体験してください。
【開発環境】
プロの現場でシェアNo.1のVisual Studio Code (VS Code)を使用します。インストールから日本語化、Go言語用の拡張機能設定まで、現場基準の環境を一緒に構築します。
この60分で得られる3つの理解
「なぜ動くのか」という設定の仕組みを理解し、今後の独学で詰まらない土台を作ります。
データの種類やメモリの概念など、他言語にも通じるプログラミングの本質を学びます。
ただ動くだけでなく、誰が見ても分かりやすい「綺麗なコード」を書くための考え方を伝授します。
※本講座は、将来的にバックエンドエンジニアやクラウドインフラに興味がある未経験者のためのエントリー講座です。マンツーマン形式により、あなたの理解度に合わせて進行します。
初めてのGo言語を一緒に学びましょう!