エンジニアになりたい人募集!X(旧Twitter)からフォローしたらリプライで質問常時OK!

【ステップ4】Go言語の変数とデータ型

はじめに

本記事は全30ステップで学ぶGolangをテーマにしたGolang学習フローステップ4です。
この記事へ直接訪問された方は、ぜひ下記の記事を参考に自身の理解度をふまえて学習を開始してみてください。

【全30ステップ】Golangで始めるプログラミング学習

前回までのあらすじ

前回のステップでは、最初のGoプログラム “Hello, World!” を作成しました。プログラムの基本構造とfmt.Println()関数の使い方を学びました。今回は、プログラミングの基礎となる変数とデータ型について深く掘り下げていきます。

【ステップ3】”Hello, World!”、最初のGoプログラム

Go言語の変数とデータ型

Go言語は静的型付け言語です。つまり、各変数には特定のデータ型が関連付けられ、それは変数の宣言時に決定されます。Go言語の変数とデータ型の特徴を見ていきましょう。

またGithubからリポジトリをクローンした方は各項目に記載の sampleXexercisesX がコードとリンクしています。

変数の宣言

Go言語では、変数を宣言するには主に3つの方法があります。

変数の宣言方法: sample1
  1. varキーワードを使用する方法
  2. 短縮変数宣言(:=)を使用する方法
  3. 型を明示的に指定する方法
go
package main

import "fmt"

func main() {
    // 1. varキーワードを使用
    var age int
    age = 30

    // 2. 短縮変数宣言
    name := "Gopher"

    // 3. 型を明示的に指定
    var height float64 = 175.5

    fmt.Println("Age:", age)
    fmt.Println("Name:", name)
    fmt.Println("Height:", height)
}

この例では、3つの異なる方法で変数を宣言しています。Go言語のコンパイラは型推論を行うため、多くの場合、明示的に型を指定する必要はありません。

基本的なデータ型

プログラミングでは保存したいデータ毎、変数にという物を指定します。
数値を保存したい場合、文字を保存したい場合…etc
数字の箱には文字は入れられず、文字の箱には数字を入れることができません。

プログラミング言語によってこのような型指定を不要とする言語もあります。しかし、厳密には自動的に型が決められているだけなので、他の言語を触ったことがあり「型指定なんてなかった」と思った方はGoでは必要とおぼえておきましょう。

基本的なデータ型: sample2

Go言語には以下のような基本的なデータ型があります。

  1. 整数型: int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64
  2. 浮動小数点型: float32, float64
  3. 複素数型: complex64, complex128
  4. ブーリアン型: bool
  5. 文字列型: string
go
package main

import "fmt"

func main() {
    var integerNum int = 42
    var floatNum float64 = 3.14
    var complexNum complex128 = 1 + 2i
    var isTrue bool = true
    var message string = "Hello, Go!"

    fmt.Printf("Integer: %d\n", integerNum)
    fmt.Printf("Float: %.2f\n", floatNum)
    fmt.Printf("Complex: %v\n", complexNum)
    fmt.Printf("Boolean: %t\n", isTrue)
    fmt.Printf("String: %s\n", message)
}

この例では、各データ型の変数を宣言し、fmt.Printf()関数を使用して適切なフォーマット指定子とともに出力しています。

Go言語の特徴:ゼロ値

Go言語では変数宣言時に初期化が行われ、ゼロ値と呼ばれる初期値が設定されます。

ゼロ値: sample3

Go言語の興味深い特徴の1つは、変数が宣言されたときに自動的に「ゼロ値」が割り当てられることです。これにより、予期せぬ動作や未初期化変数によるエラーを防ぐことができます。

この例を実行すると、各変数のゼロ値が出力されます。

go
package main

import "fmt"

func main() {
    var i int
    var f float64
    var b bool
    var s string

    fmt.Printf("int: %v\n", i)
    fmt.Printf("float64: %v\n", f)
    fmt.Printf("bool: %v\n", b)
    fmt.Printf("string: %q\n", s)
}

実践的な演習問題

次の問題に挑戦してみましょう。

年齢(整数)、身長(浮動小数点数)、名前(文字列)を表す変数を宣言、値を代入する: exercises1

ヒント

整数, 浮動小数点, 文字列はなんというデータ型だった?

クリックして答えを見る
go
package main

func main() {
    age := 26
    tall := 175.2
    name := "最強エンジニア"
    fmt.Println(fmt.Sprintf("私は%s。年齢は%dで身長は%fcmです", name, age, tall))
}

整数はint 浮動小数点は float 文字列は string でしたね。
しかしGoでは型宣言の省略(暗黙の宣言)も可能なので、実は厳密に気にして宣言する必要はあまりありません。

先ほどの変数の値を使用して、次のような文章を出力してください。
「私の名前は[名前]です。年齢は[年齢]歳で、身長は[身長]cmです。」: exercises2

ヒント

出力に使う関数は、ステップ3で学びましたね!

クリックして答えを見る
go
package main

import "fmt"

func main() {
    age := 26
    tall := 175.2
    name := "最強エンジニア"
    fmt.Printf("私の名前は%sです。年齢は%d歳で、身長は%fcmです。", name, age, tall)
}

fmt.Println は文字列を出力する関数でしたね。それを書き換えて、名前を出力します。

サンプルと演習問題の動くコードを公開!

Githubにて各ステップのコードを公開しています。cloneして動かしてみたり、手を入れて理解を深めてください。
ぜひStarでの評価をお願いします!

次のステップへのつながり

変数とデータ型の基本を理解したところで、次は演算子と式について学んでいきます。これらの知識を組み合わせることで、より複雑な計算や条件判断を行うプログラムを作成できるようになります。

変数とデータ型は、プログラミングの基礎中の基礎です。これらを十分に理解することで、今後のステップでより複雑な概念を学ぶ際の強固な基盤となります。次のステップでは、これらの変数を使って実際に計算を行う方法を学びます。

【ステップ5】Go言語の基本的な演算子と式

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)