タイトルのとおりで、GO言語のマスコットキャラクターであるGopherくんが可愛いのでGO言語始めてみよう思います。
Go言語とは
Googleが作ったWeb系の言語程度の前知識しかありませんでしたので、ちょっと調べてみました。
以下、全部Wiki調べです。
- 静的型付け、C言語の伝統に則ったコンパイル言語、メモリ安全性、ガベージコレクション、構造的型付け、CSPスタイルの並行性などの特徴を持つ
- Goのコンパイラ、ツール、およびソースコードは、すべてフリーかつオープンソースである
- Pythonのような動的型付け言語のようなプログラミングの容易性、などの特徴もある
- Go処理系としてはコンパイラのみが開発されている
- マスコット・キャラクターはGopher(ホリネズミ)
コンパイル言語ということもあり、C言語やJavaに文法は近いらしいです。
C言語で意識しなければいけないメモリリークなどはガベージコレクションでサポートして、Javaで言うVMは用いないため高速実行が可能という素敵な言語みたいです。
しかもマスコットキャラクターがかわいい。
Gopherくんとは
こちらの記事を御覧ください。
もうこちらの記事以上のことは僕には書けないです。
あと公式サイトも↓
GOの導入(Mac環境)
ここからはMac環境でGOをインストールし実行するまでをまとめておきます。
今回は公式のチュートリアルに従って、「Hello World」するまでの過程をメモります。
インストール
なにはともあれ、まずはインストールです。
brewコマンドか、公式サイトから直接ダウンロードします。
$ brew install go
続いては、実行環境の整備作業をチュートリアルを基に行います。
まずはソースコードを保管するためのファイルを作成して、Hello World用のモジュールを入れ込みます。
$ cd
$ mkdir go_test
$ cd go_test
$ go mod init example/hello
あとは以下のコードを書いて、保存するだけなのですが色々とつまずいてしまったので、このあと説明していきます。
(コード記載はテキストエディタでも、viでもなんでもOKです)
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
なんかエラーメッセージ
先程記載したGOのコードを以下のコマンドで実行してみたところ、エラーっぽいメッセージがでました。
$ go run hello.go
$GOPATH/go.mod exists but should not
もーなにこれ〜。
GO言語のことはGoogleに聞こうと思って、上記メッセージをそのまま検索窓に入力したところ、以下の記事に出会いました。
$GOPATHで指定されているディレクトリ配下にxxx.modがあることが原因。
とのことなので、早速go.modを逃します。
$ mv go.mod ../
そして再度実行してみるとちゃんと動きました!!
$ go run hello.go
Hello, World!
モジュールのこととか勉強すること盛りだくさんですが、
Web系の言語はしっかり勉強して行きたいと思っていたので、がんばります・・・
まぁ、Gopherくん可愛いのでそれをモチベにしていきます。