Go言語のインストールとHellow, World表示プログラム実行

Share on:

この記事は約4 分で読めます。

目次

前回Go言語のインストールとコマンドプロンプト上でHello, Worldを表示するプログラムをご紹介しました。

本サイトの最終目標はWEBアプリの作成という点においています。

そこで、今回はWEBアプリの基本、ブラウザにHell, Worldを表示させてみましょう。

WEBアプリというと、初心者に馴染みのあるPHPや上級者向けのJAVA、フロントエンド開発のJavascriptなど様々な言語がありますが、その中でもGo言語は実行速度も速く、プログラム構造が厳格ですので、これからプログラム開発を始められる方にはおすすめのプログラム言語だと思います。

プログラム実体のmain.go作成

前回同様、適当な場所にmain.goというプログラムファイルを作り、プログラムを書いていきます。

まず空ファイルのmain.goを作成して、テキストエディタで編集するといいでしょう。

おすすめのテキストエディタはVisual Studio Code(VSC)です。

Windows付属のメモ帳は使わず、VSCやTeraPadを使われることをおすすめします。

 1package main
 2
 3import (
 4	"log"
 5	"net/http"
 6	"html/template"
 7)
 8
 9func index(w http.ResponseWriter, r *http.Request) {
10	t := template.Must(template.ParseFiles("index.html"))
11	dat := struct {
12		Message string
13	}{
14		Message: "Hello, World",
15	}
16
17	if err := t.ExecuteTemplate(w, "index.html", dat); err != nil {
18		log.Fatal(err)
19	}
20}
21
22func main() {
23	server := http.Server{
24		Addr: ":55555",
25	}
26	http.HandleFunc("/", index)
27	server.ListenAndServe()
28}

package main

package mainはおまじないと思ってください。

必ずしもmainパッケージを使うわけではありませんが、ほとんどの場合、mainパッケージを使うことを宣言します。

import

importではプログラムで使うパッケージをインポートします。

importで重要な点は、利用するパッケージだけimportするという点です。

利用するパッケージがimportされていなかったり、利用しないパッケージがimportされていると実行時にエラーが出力されます。

  • log

実行ログの出力に利用されます。

  • net/http

HTTPクライアントとサーバーを実装します。

今回はブラウザへの出力が課題ですので、サーバー&クライアント処理が必要になるため、importします。

  • html/template

HTMLテンプレートを安全に解析および実行できるパッケージです。

今回は後述のテンプレート(WEBアプリのHTML雛形)を作成し、Hello, Worldを表示させます。

func index

index関数内では、HTMLテンプレートにテキストをパースしています。

変数tにテンプレートを定義し(今回はindex.htmlというテンプレートを用意します。)、構造体datにパースするテキストを定義しています。

Go言語の変数名は短い単語であることが特徴です。

またGo言語では厳格に変数の型を定義することが求められます。

t.ExecuteTemplateでテキストを表示しています。

func main

main関数ではサーバーを起動しています。

ポートは55555を設定していますが任意のポート番号で大丈夫です。

http.HandleFunc("/", index)によって、ルートディレクトリ(本記事ではlocalhost)にアクセスがあったらindex関数が呼び出されテキストが表示されます。

テンプレートindex.htmlの作成

main.goファイルと同じ場所にindex.htmlを作成し、下記のHTMLコードを記述します。

1<html>
2    <head></head>
3    <body>
4        {{ .Message }}
5    </body>
6</html>

ポイントは{{ .Message }}です。

main.go内のdatで定義したMessageの値が{{ .Message }}にパースされます。

実行

1C:\Users\user\main.goのあるパス go run main.go

上記コマンドを実行すると、コマンドプロンプトには何も表示されません。

今回はWEBアプリのはじめの一歩ということですので、ブラウザで実行結果を確認します。

ブラウザで、localhost:55555にアクセスしてみましょう。

このように表示されていれば成功です。

まとめ

今回はWEBアプリとしてブラウザにテキストを表示するプログラムを解説しました。

main.go内の変数やメソッドの細かい説明は割愛しましたが、これから本講を進めていく中で解説していきたいと思います。