• トップ
  • ブログ一覧
  • 【第1回】Go言語(Golang)入門~環境構築編~
  • 【第1回】Go言語(Golang)入門~環境構築編~

    笹川(エンジニア)笹川(エンジニア)
    2019.09.13

    IT技術

    第1回~Go言語(Golang)を習得したい!~

    秋山笹川先生

    (株)ライトコードでモバイルアプリケーション開発をしている笹川(ささがわ)です!

    (笹川の得意分野は、モバイルアプリケーション開発です)

    今回は、重い腰を上げてGo言語(Golang)を習得するために日々ブログにて記録していこうかと思います!

    ググればGo言語(Golang)についての情報はたくさんありますが、今回は「公式ドキュメント」をベースに進めていきたいと思います。

    第1回目(1日目)スタートです!

    開発環境はこちら

    端末Mac Book Pro
    OSmacOS Mojave 10.14.6
    Golang version1.13

    Macにインストール

    公式ページに行き、「Download Go」をクリックします。

    ちょうど、2019/09/03にVersion1.13がリリースされたようですので、そちらをダウンロードしたいと思います。

    ダウンロードが完了すると go1.13.darwin-amd64.pkg というファイルが保存されていますので、そちらをタップします。

    インストーラーが立ち上がりました!超便利!!

    ポチポチして次に進めちゃいましょう!

    インストールが無事に終わったら、念の為、ちゃんとインストールされているかwhichコマンドで確認しましょう。

    1$ which go
    2/usr/local/bin/go

     

    お疲れさまでした!

    これでインストールは完了です!

    Hello Worldをしてみよう

    プログラム入門では、お馴染みの Hello World をやってみましょう!

    まずは、PATHを通す必要があります。

    笹川は、「作業ディレクトリ」をuserディレクトリの直下に「developmentディレクトリ」を作成し、その中で「各プロジェクトファイル」を置いています。

    今回も同様にdevelopment以下で、「go」というディレクトリを作成していきたいと思います。

    PATHを通す

    では、PATHを通します。

    1export GOPATH=$HOME/development/go
    2export PATH=$PATH:$GOPATH/bin
    3export PATH=$PATH:/usr/local/go/bin

    お馴染みのコマンドで更新します。

    1$ source ~/.bash_profile

    作業ディレクトリにPATHが通っているかも確認しましょう。

    1$ echo $GOPATH
    2/Users/username/development/go

    自分の作業ディレクトリが出力できていたら完了です!

    ソースファイルを作る

    今度は、ソースファイルを作りましょう。

    下記コマンドを順番に実行すると、ソースファイルが作成されます。

    1$ cd $GOPATH
    2$ mkdir src
    3$ cd src
    4$ mkdir hello
    5$ cd hello
    6$ touch hello.go

    hello.goの中には、下記を書き込みます。

    1package main
    2
    3import “fmt”
    4
    5func main() {
    6    fmt.Printf(“hello, world\n”)
    7}

    ビルド

    では、書き込みが終わりましたら、ビルドしてみましょう!

    hello.goを作成したディレクトリから移動してない場合は、下記コマンドでビルド完了です。

    1$ go build

    もし移動していたりターミナルを閉じていたら、下記でビルドをしましょう!

    1$ cd $GOPATH/src/hello
    2$ go build

    hello.goがあるディレクトリの中に、helloという実行ファイルができているかと思います。

    実行ファイルがあればビルドは成功です!

    実行

    それでは、実行してみましょう!

    1$ ./hello
    2hello, world

    無事「Hello,World」できましたね!

    ちなみに、ここまでの流れはこちらの公式ドキュメントに記載されていますので、不明点などはそちらを参考にしてみて下さい。

    パッケージ管理ツールを入れてみよう

    パッケージ構成などはまだ良くわかってないのですが、パッケージ管理ツールは入れたほうが良いようなので入れてみます。

    選択肢は、「vgo」「dep」あたりがトレンドのようです。

    「vgo」は、公式が薦めているようです。

    しかし、多くの方が「dep」のほうを使っていて、情報収集しやすそうだったので、今回は「dep」にしようかと思います。

    depのインストール

    depのリポジトリのREADMEの指示通りにしてみます。

    1$ brew install dep
    2$ brew upgrade dep

    最新バージョンがインストールされていれば2行目は不要です。

    笹川は、見事に「最新版入ってる!」と怒られました。

    確認

    それでは、ちゃんとインストールが成功しているか確認します。

    1$ dep version
    2dep:
    3 version     : v0.5.4
    4 build date  : 2019-06-14
    5 git hash    : 1f7c19e
    6 go version  : go1.12.6
    7 go compiler : gc
    8 platform    : darwin/amd64
    9 features    : ImportDuringSolve=false

    大丈夫そうですね!

    これでdepのインストールは完了です

    プロジェクトを作ってみよう

    引き続き、depの操作になります。

    depの公式ドキュメントはこちらです。

    ドキュメント通りにコマンドを実行していきたいと思います。

    1$ mkdir -p $GOPATH/src/github.com/me/example
    2$ cd $GOPATH/src/github.com/me/example
    3$ dep init

    lsコマンドで確認します。

    1$ ls
    2Gopkg.toml Gopkg.lock vendor/

    問題なさそうです!

    実際の.goファイルの作成などしてみましょう。

    試しに、5秒に1回 success!! と表示させてみます。

    1package main
    2
    3import "fmt"
    4import "github.com/carlescere/scheduler"
    5import "runtime"
    6
    7func main() {
    8    // 5秒に1回 success!! と出力させる
    9    scheduler.Every(5).Seconds().Run(printSuccess)
    10    runtime.Goexit()
    11}
    12
    13func printSuccess() {
    14    fmt.Printf("success!! \n")
    15}

    実行

    実行してみましょう!

    1$ go run main.go
    2success!! 
    3success!! 
    4success!! 
    5success!!

    うまくいきました!

    第2回へつづく!

    今回は、ここまで!

    流行っていたのは知っていたのですが、なかなか手を出せずにいたGo言語(Golang)。

    思ったよりも環境の準備は簡単でした!

    笹川の個人開発のAPIがSpringBootを利用しているので、今後は、そちらを移行したり、モバイルアプリのライブラリを作ったりしようかと思います!

    ちなみに、今回、作成したgoファイルはこちらのリポジトリにて管理しています。

    次回の記事はこちら

    featureImg2019.09.17【第2回】Go言語(Golang)入門~Firestore導入編~第2回~Go言語(Golang)を習得したい!~(株)ライトコードの笹川(ささがわ)です。前回に引き続き、今回もGo言...

    オススメのGo入門本

    Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る
    Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る

     

    こちらの記事もオススメ!

    featureImg2020.08.08Go言語 特集知識編人気急上昇中のGo言語(Golang)って何だ?実装編Go言語(Golang)入門...

    featureImg2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...

    笹川(エンジニア)

    笹川(エンジニア)

    おすすめ記事