GitHub Codespacesで学習環境を構築したあなたに向けて、Go言語の基礎を解説しよう。
今回は、Goプログラミングの土台となる4つの重要な概念を学んでいこう。
1. パッケージの概念「Goプログラムの構成単位」
Goのすべてのプログラムはパッケージで構成されている。
パッケージは、関連するコードをまとめる単位である。
package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
}
重要なポイント
package main
:実行可能なプログラムは必ずmain
パッケージから始まる。import
:他のパッケージの機能を使うための宣言である。fmt
は標準ライブラリの一つで、入出力機能を提供する。main
関数:プログラムのエントリーポイント(開始地点)である。
パッケージは、Goにおける名前空間の役割も果たす。
例えばfmt.Println
は「fmtパッケージのPrintln関数」という意味である。
2. 変数宣言「varと:=の使い分け」
Goには2つの変数宣言方法がある。それぞれに適した使い方がある。
var による宣言
var name string = "太郎"
var age int = 25
var isStudent bool = true
// 型推論を使った宣言
var city = "三重" // stringと推論される
// 初期値を省略(ゼロ値が入る)
var count int // 0が入る
使うべき場面:
- パッケージレベルの変数(関数の外)
- 初期値を設定しない場合
- 型を明示的に指定したい場合
:= による短縮宣言
name := "太郎"
age := 25
isStudent := true
使うべき場面:
- 関数内での変数宣言(最も一般的)
- 初期値が明確な場合
- コードを簡潔に書きたい場合
注意::=
は関数の外では使えない。
3. 基本的なデータ型
Goの基本データ型を理解しよう。
int(整数)
age := 25
population := 1000000
temperature := -5
整数を扱う型である。正の数、負の数、ゼロを表現できる。
string(文字列)
name := "田中太郎"
message := "こんにちは、Go言語!"
empty := ""
文字列はダブルクォーテーション(""
)で囲む。日本語も問題なく扱える。
bool(真偽値)
isStudent := true
hasLicense := false
true
(真)またはfalse
(偽)のいずれかの値を持つ。条件分岐などで活躍する。
float64(浮動小数点数)
price := 1980.50
temperature := 36.5
pi := 3.14159
小数を扱う型である。float64
は64ビットの精度を持ち、一般的な用途に適している。
4. fmt.Printlnでの出力
fmt.Println
は、標準出力(通常はターミナル)にデータを表示する関数である。
基本的な使い方
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
複数の値を出力
name := "太郎"
age := 25
fmt.Println("名前:", name, "年齢:", age)
// 出力: 名前: 太郎 年齢: 25
複数の値を渡すと、自動的にスペースで区切って出力される。
変数の値を確認
price := 1500.75
isAvailable := true
fmt.Println(price) // 1500.75
fmt.Println(isAvailable) // true
デバッグ時に変数の中身を確認するのに便利である。
実践:すべてを組み合わせたサンプル
以下はこれまで学んだ内容を使った完全なプログラムである。
package main
import "fmt"
func main() {
// 変数宣言
var name string = "田中太郎"
age := 25
height := 175.5
isStudent := true
// 出力
fmt.Println("=== プロフィール ===")
fmt.Println("名前:", name)
fmt.Println("年齢:", age)
fmt.Println("身長:", height, "cm")
fmt.Println("学生:", isStudent)
}
実行結果
=== プロフィール ===
名前: 田中太郎
年齢: 25
身長: 175.5 cm
学生: true
次のステップとしては、制御構文(if文、for文)や関数の定義を学んでいくとよいだろう。
コメント