2014/06/16(月) [n年前の日記]
#2 [golang] Go言語を少しだけ勉強中
昨日 Python + PIL でちょっとしたスクリプトを書いた際に処理が遅いなと感じたので、もっと高速に処理ができて、かつ、簡単に書ける何かって無いのかなと興味が湧いたわけで。ということで、今頃になって、Go言語とやらをちょっと調べて触ってみたり。
フツーに「go」で検索すると関係ないページが次々にリストアップされてしまうので、「golang」と呼んでる場合が多いらしい。「Processing」を「proce55ing」と呼んだりするようなもんかな…。どうしてこの手の言語は、検索しにくい単語をわざわざ選ぶんだろう。まあ、「Apple」とか「Windows」も、たいがいにせえやって感じではありますけど。
フツーに「go」で検索すると関係ないページが次々にリストアップされてしまうので、「golang」と呼んでる場合が多いらしい。「Processing」を「proce55ing」と呼んだりするようなもんかな…。どうしてこの手の言語は、検索しにくい単語をわざわざ選ぶんだろう。まあ、「Apple」とか「Windows」も、たいがいにせえやって感じではありますけど。
◎ コンパイラのインストール。 :
_Downloads - The Go Programming Language
から、go1.2.2.windows-386.msi をDLして実行。C:\Go\ にインストールした。.msi でインストールしたので、環境変数 PATH も設定してくれた。
DOS窓で go[Enter] と入力。ヘルプが表示されたらインストールは成功している。
以下のソースを hello.go として作成。
DOS窓で go[Enter] と入力。ヘルプが表示されたらインストールは成功している。
以下のソースを hello.go として作成。
package main import "fmt" func main() { fmt.Printf("Hello World\n") }go run hello.go を実行。「Hello World」とメッセージが表示された。ビルドも実行も成功しているらしい。
◎ Go言語用のIDEを導入。 :
Go言語には、LiteIDE なるIDEが存在するらしいので、試しに導入してみる。
_liteide | Free software downloads at SourceForge.net から、liteidex22.windows.7z をDLして解凍。任意のフォルダにコピー。
インストールフォルダ\liteide\bin\liteide.exe を実行すれば、起動する。
環境変数 GOROOT を設定する。ツールバー上で「System」を選んで、右側のボタンを押す。設定ファイルが開かれるので、GOROOT と書かれてる行を修正。C:\Go\ を設定すればいいのかな。たぶん。
環境変数 GOPATH を設定する。View → Manage GOPATH → 下の欄に追加。自分のプロジェクトを保存する場所を指定すればいいらしいけどよくわかってない。
_liteide | Free software downloads at SourceForge.net から、liteidex22.windows.7z をDLして解凍。任意のフォルダにコピー。
インストールフォルダ\liteide\bin\liteide.exe を実行すれば、起動する。
環境変数 GOROOT を設定する。ツールバー上で「System」を選んで、右側のボタンを押す。設定ファイルが開かれるので、GOROOT と書かれてる行を修正。C:\Go\ を設定すればいいのかな。たぶん。
環境変数 GOPATH を設定する。View → Manage GOPATH → 下の欄に追加。自分のプロジェクトを保存する場所を指定すればいいらしいけどよくわかってない。
◎ Mercurial をインストール。 :
godef なる便利ツールをインストールする際に Mercurial というバージョン管理システムが必要になるらしいので、一応インストール。
Mercurial をインストールする場合、一般的には TortoiseHg という、GUIで操作可能、かつ、Windowsのエクスプローラに組み込むような感じのツールを導入すると簡単らしいのだけど。自分の環境は、既に _TortoiseSVN と _TortoiseGit をインストールしてあって。これ以上エクスプローラにこの手のツールを組み込むとますます不安定になりそうなので、今回 TortoiseHg はインストールしないことにした。
_JapaneseDownload - Mercurial から、mercurial-3.0.1-x86.msi をDLして実行。デフォルト設定でインストールした。C:\Program Files (x86)\Mercurial\ にインストールされたらしい。.msi でインストールしたので、環境変数 PATH も設定された模様。DOS窓で hg help とか hg version と打ち込んだら色々表示された。
Mercurial をインストールする場合、一般的には TortoiseHg という、GUIで操作可能、かつ、Windowsのエクスプローラに組み込むような感じのツールを導入すると簡単らしいのだけど。自分の環境は、既に _TortoiseSVN と _TortoiseGit をインストールしてあって。これ以上エクスプローラにこの手のツールを組み込むとますます不安定になりそうなので、今回 TortoiseHg はインストールしないことにした。
_JapaneseDownload - Mercurial から、mercurial-3.0.1-x86.msi をDLして実行。デフォルト設定でインストールした。C:\Program Files (x86)\Mercurial\ にインストールされたらしい。.msi でインストールしたので、環境変数 PATH も設定された模様。DOS窓で hg help とか hg version と打ち込んだら色々表示された。
◎ EmacsにGo言語用のアレコレを設定。 :
勉強するだけなら LiteIDE を使えば十分のような気もするのだけど、EmacsでGo言語を書くためのlispが用意されてるらしいので試しにそちらも導入。
C:\Go\misc\emacs\*.el を emacs のロードパスの通った場所にコピー。
gocode と godef をインストール。この段階で、Mercurial (hg)が必要になる。また、環境変数 GOPATH が設定されてる必要があるらしい。
gocode に何か色々設定。
go-autocomplete.el も、emacsのロードパスの通った場所にコピー。%GOPATH%\src\github.com\nsf\gocode\emacs\go-autocomplete.el からコピーしてくる。
~/.emacs に以下を追加。
*.go を開いたら色分け表示されるようになった。また、例えば fmt. と打つと候補がリストアップされた。auto-complete.el とやらを有効にしてる場合は、そういう動作になるらしい。
C:\Go\misc\emacs\*.el を emacs のロードパスの通った場所にコピー。
gocode と godef をインストール。この段階で、Mercurial (hg)が必要になる。また、環境変数 GOPATH が設定されてる必要があるらしい。
go get code.google.com/p/rog-go/exp/cmd/godef go get -u github.com/nsf/gocode
gocode に何か色々設定。
> gocode set propose-builtins true propose-builtins true > gocode set lib-path "C:\home\mieki256\gocode\pkg\windows_386" lib-path "C:\home\mieki256\gocode\pkg\windows_386" > gocode set propose-builtins true lib-path "C:\home\mieki256\gocode\pkg\windows_386" autobuild false
go-autocomplete.el も、emacsのロードパスの通った場所にコピー。%GOPATH%\src\github.com\nsf\gocode\emacs\go-autocomplete.el からコピーしてくる。
~/.emacs に以下を追加。
;; ---------------------------------------- ;; Golang (require 'go-mode-load) (require 'go-autocomplete) (require 'auto-complete-config) ;; (speedbar-add-supported-extension ".go") (add-hook 'go-mode-hook '(lambda() (auto-complete-mode 1) (setq ac-sources '(ac-source-go)) (setq c-basic-offset 4) (setq indent-tabs-mode t) (local-set-key (kbd "M-.") 'godef-jump) (local-set-key (kbd "C-c C-r") 'go-remove-unused-imports) (local-set-key (kbd "C-c i") 'go-goto-imports) (local-set-key (kbd "C-c d") 'godoc) (define-key ac-mode-map (kbd "M-TAB") 'auto-complete))) (add-hook 'before-save-hook 'gofmt-before-save)
*.go を開いたら色分け表示されるようになった。また、例えば fmt. と打つと候補がリストアップされた。auto-complete.el とやらを有効にしてる場合は、そういう動作になるらしい。
◎ 参考ページ。 :
_Go言語のインストール - golang.jp
_Downloads - The Go Programming Language
_Windowsユーザがgo言語の開発環境を構築する ・ さにあらず
_golangide - LiteIDE Released for Go - Google Project Hosting
_liteide | Free software downloads at SourceForge.net
_Go言語の初心者が見ると幸せになれる場所 - Qiita
_JapaneseDownload - Mercurial
_バージョン管理「Mercurial」の導入 - DateBooks
_EmacsでのGo言語編集環境 - unknownplace.org
_EmacsでのGo言語編集環境(Linux編) - Life is very short
_Emacsを使ったGo言語開発手法(2013.07版) - YAMAGUCHI::weblog
_Downloads - The Go Programming Language
_Windowsユーザがgo言語の開発環境を構築する ・ さにあらず
_golangide - LiteIDE Released for Go - Google Project Hosting
_liteide | Free software downloads at SourceForge.net
_Go言語の初心者が見ると幸せになれる場所 - Qiita
_JapaneseDownload - Mercurial
_バージョン管理「Mercurial」の導入 - DateBooks
_EmacsでのGo言語編集環境 - unknownplace.org
_EmacsでのGo言語編集環境(Linux編) - Life is very short
_Emacsを使ったGo言語開発手法(2013.07版) - YAMAGUCHI::weblog
[ ツッコむ ]
以上です。