mieki256's diary



2014/06/16(月) [n年前の日記]

#2 [golang] Go言語を少しだけ勉強中

昨日 Python + PIL でちょっとしたスクリプトを書いた際に処理が遅いなと感じたので、もっと高速に処理ができて、かつ、簡単に書ける何かって無いのかなと興味が湧いたわけで。ということで、今頃になって、Go言語とやらをちょっと調べて触ってみたり。

フツーに「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 として作成。
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 → 下の欄に追加。自分のプロジェクトを保存する場所を指定すればいいらしいけどよくわかってない。

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 と打ち込んだら色々表示された。

EmacsにGo言語用のアレコレを設定。 :

勉強するだけなら LiteIDE を使えば十分のような気もするのだけど、EmacsでGo言語を書くためのlispが用意されてるらしいので試しにそちらも導入。

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 とやらを有効にしてる場合は、そういう動作になるらしい。

参考ページ。 :


以上です。

過去ログ表示

Prev - 2014/06 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project