Go - 定数:入門者のガイド

ようこそ、志を抱くプログラマーさんたち!今日は、Go言語の定数の世界に飛び込みます。これまでにコードを一行も書いたことがない方でも心配しないでください。基本的なところから始めて、少しずつ理解を深めていきます。このチュートリアルが終わるまでには、定数の達人になるでしょう!

Go - Constants

定数とは?

本題に進む前に、まず定数とは何かを理解しましょう。プログラミングにおいて、定数とはプログラムの実行中に変わらない値のことを指します。これを箱に例えると、中に値を入れて封をした箱のようなものです。一度入れたら、中の値は出て来たり変わったりしません。

整数リテラル

まずは簡単なものから始めましょう。整数リテラルです。これは小数点のない整数です。

例1:基本的な整数リテラル

package main

import "fmt"

func main() {
    fmt.Println(42)
    fmt.Println(-17)
    fmt.Println(0)
}

この例では、42、-17、0という3つの整数リテラルを表示しています。簡単ですね。でもGoでは、整数にさらに凝ることができます。

例2:異なる基数システム

package main

import "fmt"

func main() {
    fmt.Println(42)    // 10進数(基数10)
    fmt.Println(0x2A)  // 16進数(基数16)
    fmt.Println(052)   // 8進数(基数8)
}

ここで面白いことに、全部の行で同じ数字(42)を表示していますが、異なる数体系で書かれています。これは同じ数字を異なる言語で表現するようなものです!

浮動小数点リテラル

では、小数に進んでみましょう。

例3:基本的な浮動小数点リテラル

package main

import "fmt"

func main() {
    fmt.Println(3.14159)
    fmt.Println(-0.5)
    fmt.Println(2.0)
}

これらは一般的な小数です。でもGoでは、それらを表現するさらに多くの方法があります。

例4:科学記数法

package main

import "fmt"

func main() {
    fmt.Println(6.022e23)  // アボガドロ数
    fmt.Println(1.6e-19)   // 電子の电荷
}

科学記数法は、非常に大きな数や非常に小さな数に非常に便利です。まるで数にスーパーパワーを与えるようなものです!

エスケープシーケンス

時々、文字列に特別な文字を含める必要があります。その際に便利なのがエスケープシーケンスです。

例5:一般的なエスケープシーケンス

package main

import "fmt"

func main() {
    fmt.Println("Hello\nWorld")  // 改行
    fmt.Println("Tab\tcharacter")  // タブ
    fmt.Println("Backslash: \\")  // バックスラッシュ
    fmt.Println("\"Quotes\"")  // 引用符
}

これらの小さなバックスラッシュは、普通の文字を特別な文字に変える魔法の杖のようなものです!

Goでの文字列リテラル

文字列はプログラミングの文句のようなものです。Goがそれをどのように処理するかを見てみましょう。

例6:基本的な文字列リテラル

package main

import "fmt"

func main() {
    fmt.Println("Hello, Gophers!")
    fmt.Println(`This is a raw string literal.
It can span multiple lines.`)
}

違いに気づきましたか?最初のはダブルクォートを使用しており、二番目のはバッククォートを使用しています。バッククォートを使ったバージョンは、ラフ文字列リテラルと呼ばれ、改行を含めることができます!

constキーワード

では、constキーワードを使ってすべてを纏めましょう。

例7:定数の宣言

package main

import "fmt"

const (
    PI = 3.14159
    GRAVITATIONAL_CONSTANT = 6.67430e-11
    GREETING = "Hello, Constants!"
)

func main() {
    fmt.Println(PI)
    fmt.Println(GRAVITATIONAL_CONSTANT)
    fmt.Println(GREETING)
}

ここでは、プログラムの後で変更できない定数を宣言しています。これらの値は、まるで石に刻まれたかのようです!

定数メソッド

Goは定数を扱うためのいくつかのメソッドを提供しています。以下にそれらをまとめた表を示します:

メソッド 説明
iota 関連する定数のシーケンスを生成 const ( A = iota; B; C )
类型推論 Goは定数の类型を推論します const x = 5
未型定数 特定の类型を持たない定数 const y = 3.14
型付き定数 特定の类型を持つ定数 const z int64 = 1000000

忘れないでください、定数はGoでのあなたの友です。定数を使うことで、コードを整理し、重要な値の accidental changes を防ぐことができます。

結論として、Goの定数は強力なツールで、プログラム内で変更不可の値を定義する手段を提供します。単純な整数から複雑な文字列まで、定数を使うことでコードの可読性とメンテナンス性を高めることができます。

それでは、若いGophers、定数の世界を征伐してください!あなたのGoプログラミングの旅は今始まっています。お楽しみに!

Credits: Image by storyset