tomatoaiu の Tech Blog

プログラミングやツールについてのまとめブログ

【Go】インストールからhello, worldまでやってみる

モチベーション

Go言語を勉強したい。勉強した末に、Vuguでアプリケーションを作成したい!

環境構築

go言語の環境がないので作成しないといけない。大変なのかな?
さっそくGetting Startedにそってinstallだ。

Download

ダウンドーロページからGoを持ってくるのかな?
homebrewでできそうな感じがする。だから探してみる。
あった。Go Formulae
つまり、homebrewでinstallできるってことでokそう。

❯ brew install go
~~~中略~~~
==> Pouring go-1.12.4.mojave.bottle.tar.gz
🍺  /usr/local/Cellar/go/1.12.4: 9,798 files, 452.6MB

パスの設定

無事にinstallできたらパスの設定を行う必要があるみたいですね。
shellでgo --versionみたいにgoコマンドを打つために。
僕のshellはzshなので.zshrcにパスの設定を書かなければ。
このパスの設定を簡単にできるUnix系のコマンドありそうなんだけど、僕は知らないためエディタで開いて書き込む。
と、思ったけど検索したら良さそうな記事を見つけました。感謝!
見るとパスの設定以外にGoパスというgoオリジナルのパスも設定する必要があるのかな? bashの箇所をzshに書き換えたら動くのかな?というか動いてくれ!

なんてやらなくてよかった。もうパスが通ってた。
しかもgo version--を書かなくてもいいみたい。

❯ go version
go version go1.12.4 darwin/amd64

ちゃんとinstallできたらテスト

公式HPに戻り続きをやるぞ!

ふむ、hello.goというファイルを作ればいいのかな?

touch hello.go

中身をコピペするぞ。

// source: https://golang.org/doc/install#testing
package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

これであとはbuildだね。
terminalに戻ってbuildだ。

❯ go build
can't load package: package .: 
hello.go:1:1: expected 'package', found 'EOF'

なんとなく分かってた。Goパスを設定しなければならないということを。

Goパスの設定

親切にもgithubのgolangの公式wiki内に書いてある。
さらに親切にzsh用の書き方まである!!!たまげた。

❯ code ~/.zshrc

.zshrcに以下を追加。

export GOPATH=$HOME/go

で、エディタで変更を保存して、sourceで更新!

source ~/.zshrc

再度実行

Goパスも設定できたし、buildしてみるぞ!

❯ go build
can't load package: package .: 
hello.go:1:1: expected 'package', found 'EOF'

あれれ〜?おっかしいぞ〜?

原因

hello.goに一文字も書いてなかった。
この記事を書きつつbuildしてたからhello.goにも書いてたと思ってしまった。
今度こそ、しっかり書き込むぞ!

再再度実行

❯ go build

できた!通った! 同じフォルダ内に、go-playgroundっていうのができた。
公式だとhelloディレクトリ内で行なっているからhelloっていうファイルができるみたい。
なので公式のをそのままやると、

❯ ./hello
zsh: no such file or directory: ./hello

エラー。 Go言語のビルド語のファイル名はフォルダ名の名前になるんだね。把握しました。 で、go-playgroundを実行してみる。

/go-playground
❯ ./go-playground
hello, world

hello, worldできまーした!

次回

公式HPのHow to Write Go Codeをやってみるぞ。

やってみたのが以下の記事。 https://tomatoaiu-nikki.hatenablog.com/entry/2020/07/16/065004

参考文献