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

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

はじめに

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

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

前回までのあらすじ

前回のステップでは、Go言語の開発環境のセットアップを行いました。IDEのインストールや、GOPATHの設定など、Goプログラミングを始めるための準備が整いました。今回は、いよいよ最初のGoプログラムを書いていきます。

【ステップ2】Go言語の開発環境のセットアップ

Go言語で”Hello, World!”

プログラミング言語を学ぶ際の伝統として、最初に作成するプログラムは”Hello, World!”と画面に表示するものです。Go言語でも、この伝統に則って最初のプログラムを作成しましょう。

Go言語の特徴の一つは、シンプルで読みやすい構文です。”Hello, World!”プログラムを通じて、Go言語の基本的な構造を学んでいきましょう。

ステップ2でもう”Hello Go!”やったじゃん!というツッコミは無しだゾ!
あれは表示しただけで、プログラムの中身は一切身についてないですからね!

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

実際にコードを動かしてみる

Hello, Worldプログラム: sample1

以下が、Go言語での”Hello, World!”プログラムです。

go
package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

このコードをhello.goという名前のファイルに保存しましょう。

コードの説明

  1. package main: すべてのGo言語のプログラムは、パッケージ宣言から始まります。mainパッケージは、実行可能プログラムの開始点を含むパッケージです。
  2. import "fmt": 他のパッケージをインポートするために使用します。fmtパッケージは、フォーマット済み入出力を提供します。
  3. func main() { ... }: main関数は、プログラムのエントリーポイント(開始点)です。プログラムの実行は、この関数から始まります。
  4. 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言語のいくつかの特徴が見えてきます。

  1. シンプルな構文: 余計な文字や記号が少なく、読みやすい構造になっています。
  2. パッケージシステム: import文を使って必要な機能をインポートします。
  3. 静的型付け: (このプログラムでは明示的に型を宣言していませんが)Go言語は静的型付け言語です。

実践的な演習問題

それでは次の演習問題を参考に、プログラムを書き換えてみましょう!

“Hello, World!”の代わりに、あなたの名前を表示するようにプログラムを修正してみてください: exercises1

出力結果

[あなたの名前]

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

import "fmt"

func main() {
    fmt.Println("最強エンジニア")
}

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

fmt.Printlnの代わりにfmt.Printfを使用して次の出力をしてみましょう。

出力結果

現在の年: 2024年

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

import "fmt"

func main() {
    fmt.Printf("現在の年: %d", 2024)
}

fmt.Printf を使ってと言われ、どうしましたか?
初めて聞く関数…使い方がわかりませんよね?そういう時は調べたら良いんです!Googleに質問しましょう!
fmt.Printf は規定の書式に値を代入して文章を整形することが出来ます。
現在の年: %d%d2024 に置き換わって出力されます。

この問題を違う形でクリアした人もいると思います。プログラムは書き手の数だけ方法があります。こんな簡単なプログラムでも違うパターンがあるのです。結果だけみれば一緒ですが、効率や読みやすさ等いろいろな違いがあります。
今は気にしなくても大丈夫です。しかし、こういった違いの部分がプログラムの難しさであり楽しさです。

複数のfmt.Printlnを使用して、以下のような出力を作成してみてください

出力結果

*****
Hello
World
*****

クリックして答えを見る
go
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言語の変数とデータ型

コメントを残す

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

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