はじめに
本記事は全30ステップで学ぶGolangをテーマにしたGolang学習フローのステップ3です。
この記事へ直接訪問された方は、ぜひ下記の記事を参考に自身の理解度をふまえて学習を開始してみてください。
前回までのあらすじ
前回のステップでは、Go言語の開発環境のセットアップを行いました。IDEのインストールや、GOPATHの設定など、Goプログラミングを始めるための準備が整いました。今回は、いよいよ最初のGoプログラムを書いていきます。
【ステップ2】Go言語の開発環境のセットアップGo言語で”Hello, World!”
プログラミング言語を学ぶ際の伝統として、最初に作成するプログラムは”Hello, World!”と画面に表示するものです。Go言語でも、この伝統に則って最初のプログラムを作成しましょう。
Go言語の特徴の一つは、シンプルで読みやすい構文です。”Hello, World!”プログラムを通じて、Go言語の基本的な構造を学んでいきましょう。
ステップ2でもう”Hello Go!”やったじゃん!というツッコミは無しだゾ!
あれは表示しただけで、プログラムの中身は一切身についてないですからね!
またGithubからリポジトリをクローンした方は各項目に記載の sampleX
や exercisesX
がコードとリンクしています。
実際にコードを動かしてみる
以下が、Go言語での”Hello, World!”プログラムです。
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
このコードをhello.go
という名前のファイルに保存しましょう。
コードの説明
package main
: すべてのGo言語のプログラムは、パッケージ宣言から始まります。main
パッケージは、実行可能プログラムの開始点を含むパッケージです。import "fmt"
: 他のパッケージをインポートするために使用します。fmt
パッケージは、フォーマット済み入出力を提供します。func main() { ... }
:main
関数は、プログラムのエントリーポイント(開始点)です。プログラムの実行は、この関数から始まります。fmt.Println("Hello, World!")
:fmt.Println
関数を使って、”Hello, World!”という文字列を出力します。
パッケージとはプログラムを細分化して切り離した物です。
全部ひとまとめだとごちゃごちゃになっちゃうので、機能ごとに切り離して管理をしやすくしていると思っておけば大丈夫です。
複数の延長コードをタコ足配線した時、あっちこっちの延長コードが絡まるよりも、部屋の北側の家電用、南側の家電用とキレイに分けておいた方が管理しやすいですよね!プログラムでも似たような事がいえるんです!
プログラムの実行
ターミナルで以下のコマンドを実行してプログラムを動かしましょう。
実行するためのコマンドはこれでしたね!go run hello.go
Githubのサンプルコードを使っている人はgo run step03/sample/main.go sample1
で実行できます
すると、以下のような出力が表示されるはずです。
Hello, World!
おめでとうございます!これであなたの最初のGoプログラムが動作しました。
Go言語の特徴
このシンプルなプログラムからも、Go言語のいくつかの特徴が見えてきます。
- シンプルな構文: 余計な文字や記号が少なく、読みやすい構造になっています。
- パッケージシステム:
import
文を使って必要な機能をインポートします。 - 静的型付け: (このプログラムでは明示的に型を宣言していませんが)Go言語は静的型付け言語です。
実践的な演習問題
それでは次の演習問題を参考に、プログラムを書き換えてみましょう!
出力結果
[あなたの名前]
クリックして答えを見る
package main
import "fmt"
func main() {
fmt.Println("最強エンジニア")
}
fmt.Println
は文字列を出力する関数でしたね。それを書き換えて、名前を出力します。
fmt.Println
の代わりにfmt.Printf
を使用して次の出力をしてみましょう。出力結果
現在の年: 2024年
クリックして答えを見る
package main
import "fmt"
func main() {
fmt.Printf("現在の年: %d", 2024)
}
fmt.Printf
を使ってと言われ、どうしましたか?
初めて聞く関数…使い方がわかりませんよね?そういう時は調べたら良いんです!Googleに質問しましょう!fmt.Printf
は規定の書式に値を代入して文章を整形することが出来ます。現在の年: %d
の%d
が 2024
に置き換わって出力されます。
この問題を違う形でクリアした人もいると思います。プログラムは書き手の数だけ方法があります。こんな簡単なプログラムでも違うパターンがあるのです。結果だけみれば一緒ですが、効率や読みやすさ等いろいろな違いがあります。
今は気にしなくても大丈夫です。しかし、こういった違いの部分がプログラムの難しさであり楽しさです。
fmt.Println
を使用して、以下のような出力を作成してみてください出力結果
*****
Hello
World
*****
クリックして答えを見る
package main
import "fmt"
func main() {
fmt.Println("*****")
fmt.Println("Hello")
fmt.Println("World")
fmt.Println("*****")
}
fmt.Println
は末尾に改行を含みます。ln
が改行を示すという事を知っていると関数名をみて段階でひらめいたんではないでしょうか?
サンプルと演習問題の動くコードを公開!
Githubにて各ステップのコードを公開しています。cloneして動かしてみたり、手を入れて理解を深めてください。
ぜひStarでの評価をお願いします!
次のステップへのつながり
“Hello, World!”プログラムを通じて、Goプログラムの基本的な構造と実行方法を学びました。次のステップでは、Go言語の変数とデータ型について学んでいきます。変数を使うことで、よりダイナミックで対話的なプログラムを作成することができるようになります。
プログラミングの世界への第一歩を踏み出しましたね。これからの学習が楽しみですね!
【ステップ4】Go言語の変数とデータ型