初心者にも分かりやすくGo言語の特徴と書き方を解説!

この記事のランク
読む時間3分
重要度

Go(ゴー)言語は2012年にGoogle社がリリースしたプログラミング言語です。

近年、普及率がかなり高くなった言語の一つになります。

この記事では、Go言語で何ができるのか?をテーマに、Go言語の特徴を実際のソースコードを見ながらご紹介いたします。

ななころ

Twitter(@nana_korobi04)でも情報発信していますので、
フォローいただけると嬉しいです!

目次

Go言語とは

Go言語は、当時アメリカのベル研究所でUnixやC言語の開発に携わっていたRob Pike氏、Kenneth Thompson氏によって作られました。

コンピュータの処理能力の向上や、プログラミング言語の複雑化など環境の変化により、「シンプル」で「素早い」プログラミング言語が求められていたことがGo言語が作られた理由です。

Go言語は、C言語やJavaと同じコンパイラ言語ですが、OSに依存しないクロスコンパイルという機能が特徴で、例えばWindowsで作ったGoのソースコードをMacでもコンパイルして利用することができます。

また、Go言語はgoroutine(ゴルーチン)という並列処理ができる機能が備わっており、高速に処理を行えるため、規模の大きなシステム開発に向いているプログラミング言語でもあります。

Go言語でできること

Go言語はWebサイトやWebアプリケーションの開発が得意で、有名なサービスには、YouTube、メルカリ、ぐるなびがあります。

他には「Go mobile」というパッケージを使うとAndroidとiOS両方に対応したスマホアプリが開発できますし、「Gobot」というフレームワークを使えばIoTの開発も可能です。

Go言語のはじめかた

それではGo言語をはじめるに当たって、必要な作業をご説明します。

Go言語のダウンロード手順

「Go言語」のダウンロード手順
STEP
ダウンロードサイトにアクセス

Goのサイトよりインストーラーをダウンロードします。

STEP
ツールのインストール

以下の手順でインストールをを進めてください。

STEP
コマンドプロンプトを開く

スタートから「cmd」で検索し、コマンドプロンプトを開いてください。

STEP
バージョン情報の確認

最後にコンソールで「go version」を実行し、バージョン情報が見れること確認します。

Goファイルの実行

これでGo言語を開発する準備ができました。

次にGo言語のファイルを実行してみましょう。

package main
import "fmt"
func main(){
fmt.Println("Hello")
}

Go言語は、コードをパッケージという単位にまとめる必要がありますので、1行目でmainというパッケージにまとめています。

2行目では、文字列の入出力を行うfmtというパッケージをインポートしています。

3行目、4行目では、funcmain関数を定義し、そのなかでfmtパッケージのprintInという関数を使って、()内の“Hello”という文字列を出力しています。

それでは、実際にGoファイルを動かしてみましょう。

Go言語はコンパイルが必要なプログラミング言語ですが、自動的にコンパイル~実行までしてくれる「go run」というコマンドがあります。

Goファイルの実行方法
STEP
コマンドプロンプトを開く

スタートから「cmd」で検索し、コマンドプロンプトを開いてください。

STEP
「go run Hello.go」を実行

コマンドプロンプトから「go run Hello.go」を実行します。

ただし、「go run」は実行ファイルが作成されないため、実行ファイルを作成する場合は以下の「go build」を指定します。

Goファイルのコンパイル方法
STEP
「go build Hello.go」の実行

コマンドプロンプトから「go build Hello.go」を実行します。

STEP
「Hello.exe」の確認

同じフォルダに「Hello.exe」が作成されますので、確認してください。

STEP
「Hello.exe」の実行

「Hello.exe」をダブルクリックして実行してください。

GoでWebサイトを構築

続いて、「net/http」というパッケージを使って簡単なWebサイトを構築してみましょう。

package main
import (
"log"
"net/http"
)
func main() {
http.Handle("/web/", http.StripPrefix("/web/", http.FileServer(http.Dir("/Go/Sample"))))
log.Fatal(http.ListenAndServe(":8080", nil))
}

2〜5行目のimportメソッドでは、Webサイトを構築する「net/http」、エラーメッセージを出力する「log」というパッケージを取得しています。

main関数の処理である7行目では、http.Handleメソッドの中に3つの引数がありますが、第3引数から順に解説していきます。

まず、第3引数のhttp.FileServerメソッドでは「C:\Go\Sample」配下にあるファイル(後述するindex.html)を探しにいきますが、何も考慮しないとhttp.Handleメソッドの第1引数(web)を後ろに付与してファイルを探しにいってしまいます。

しかし、実際には「C:\Go\Sample\web」という階層は存在しないため、「web」の部分を除外する必要があり、第2引数であるhttp.StripPrefixメソッドで「web」を除外しています。

http.Handleメソッドの第1引数である「web」というハンドル名を登録し、8行目のListenAndServeメソッドへ引数として渡すためのものです。

ListenAndServeメソッドでは、第2引数が「nil」となっていますが、nilの場合はhttp.Handleメソッドで登録したハンドルを取得して、Webサーバーを起動しています。

結果、このWebサイトのURLは「http://localhost:8080/web/」となります。

なお、Webサーバーの起動に失敗した場合、コンソールにエラーメッセージが出力されるよう、log.FatalメソッドでListenAndServeを囲っています。

続いて、ブラウザに表示させるHTMLを作りましょう。

HTMLファイルは、SampleSite.goと同じ場所に作成しています。

<!DOCTYPE html>
<html lang=ja>
<head>
<meta charset="utf-8">
<title>SampleSite</title>
</head>
<body>
<h3>Welcome My WebSite!</h3>
</body>
</html>

HTMLファイルが作成できたらコンソールから「go run SampleSite.go」のコマンドを実行して下さい。

次にブラウザを起動してアドレスバーに「http://localhost:8080/web/」を入力してアクセスすると、「Welcome My WebSite!」というメッセージが表示されたと思います。

このようにGo言語では10行足らずで簡単にWebサイトを作ることができます。

まとめ

Go言語は新しいプログラミング言語ですので、未だ市場にはエンジニアが少ないため習得すれば仕事で有利になります。

開発元もGoogleという信頼性の高い起業のため、バックエンドの案件でもJava、Rubyに続いてGo言語の募集が目立つようになってきています。

Web業界では、既存のプログラミング言語から処理性能が速いGo言語への移行が始まっていますので、今後もGo言語の需要は増えていくでしょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次