&tag(Go/入門);
*目次 [#d5b092b8]
#contents
*関連ページ [#v70f51d0]
*参考情報 [#t915fe1d]
-[[A Tour of Go:http://go-tour-jp.appspot.com/#1]]
-[[go言語の始め方(1) — PythonMatrixJp:http://python.matrix.jp/2013/05/09/go_start1.html]]
*設定 [#k666fb8f]
**参考情報 [#k014f601]
-[[EmacsでのGo言語編集環境 - unknownplace.org:http://unknownplace.org/archives/golang-editing-with-emacs.html]]
-[[goインストールから、emacsにgo-mode, go-autocompleteを導入するまで - $shibayu36->blog;:http://blog.shibayu36.org/entry/2013/11/08/194958]]
**インストール [#g9eb7292]
***MacPortsの場合 [#o5cf3f11]
-portsコマンドでインストール。
port install go
**Emacsの設定 [#l0d7c353]
***go-modeのインストール [#t4e07fb9]
-M-x package-installでgo-modeをインストール。
-.emacsに以下を追加。
#pre{{
;; go-mode
(add-hook 'go-mode-hook
'(lambda ()
(setq tab-width 4)
))
}}
※ 「`flet' is an obsolete macro (as of 24.3); use either `cl-flet' or `cl-letf'.」という警告がでる場合、パッケージが古い?最新版をインストールしてみる。
*基本 [#z076d348]
** Hello World [#e9e056a6]
-基本プログラム。
#pre{{
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
}}
**プログラムの実行 [#wea04d83]
-その場ですぐ実行した場合、go runを使う。
go run.hello.go
**プログラムのビルド [#j478c070]
-実行ファイルを作成したい場合 go buildを使う。
go build hello.go
**プログラムのフォーマット [#g2579309]
-ハードタブや、スペースの挿入など
go fmt hello.go
**ドキュメントの閲覧 [#l5a7af75]
-コマンドライン
godoc fmt
-web
godoc -http=":3000"
*パッケージ管理 [#m8007bcb]
**フォルダ構造 [#o0265622]
-もともとプロジェクトルートをGOPATHとして指定する方式が主流だったが、一箇所に固定する方式に変わってきた?
-複数設定するやり方もあるらしい。 [[これからGoを始める人のためのTips集 | The Wacul Blog:http://blog.wacul.co.jp/blog/2014/08/22/go/]]
**プロジェクト基本構造 [#yc1c61e0]
-例えばmyprojectを作成して以下のように構成。
#pre{{
.
├── bin
│ └── main
├── pkg
└── src
├── github.com
│ └── src256
│ └── gosample
│ └── gosample.go
└── main
└── main.go
}}
-GOPATHをmyprojectに設定し、mainディレクトに移動してgo run main.goで実行できる。
**パッケージの取得方法 [#fef8d78f]
- go get パッケージ名で、GOPATH/src以下にソースファイルが取得できる。
go get github.com/src256/gosample