背景
Go言語勉強用の環境が欲しくて、Cloud9の環境を検証してみました。
せっかくなのでまとめておきます。
1.Cloud9にWorkspaceの作成
テンプレートは「Blank」で作成。
2016/11/16時点での最新バージョンのGo言語がインストール済みでした。
$ go version
go version go1.7.3 linux/amd64
2.HelloWorldを実装
以下のコードをhello.go
として保存。
拡張子をgo
で保存すると、エディタがGo言語向けに切り替わります。
package main
import "fmt"
func main() {
fmt.Print("hello, golang.")
}
3.実行
hello.goを開いた状態で、Cloud9のツールバーから実行。
Run > Run With > Go
実行タブが表示されて、こんな感じで実行できます。
次からは「Run」ボタンを押せばOK。
4.ブラウザにHelloWorldを実装
コードを以下に変更。
package main
import "fmt"
import "net/http"
import "os"
func viewHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "hello,golang.")
}
func main() {
http.HandleFunc("/", viewHandler)
http.ListenAndServe(os.Getenv("IP")+":"+os.Getenv("PORT"), nil)
}
Cloud9でサーバーアプリを実行する場合は、IP:0.0.0.0/ポート:8080を指定する必要があるようです。
https://docs.c9.io/docs/run-an-application
http.ListenAndServe("0.0.0.0:8080", nil)
と実装しても動くのですが、せっかくなので環境変数を使って実装しました。
http.ListenAndServe(os.Getenv("IP")+":"+os.Getenv("PORT"), nil)
5.実行
6.コード補完
まだ正式リリースではないですが、Go言語のコード補完も利用できました。
Cloud9 > Preferences > Experimental > Go Code Completion
で補完機能をONにすることができます。
※注意
ONにしただけでは機能が有効になりません。
一度タブを閉じて再度Workspaceを開き直すと有効になりました。
ここまでできれば、学習に利用することができそうです。