Help us understand the problem. What is going on with this article?

Cloud9にGo言語でHelloWorldを実装・実行してみた

More than 3 years have passed since last update.

背景

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
image
実行タブが表示されて、こんな感じで実行できます。
次からは「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.実行

image
ブラウザに表示させることができました。

6.コード補完

まだ正式リリースではないですが、Go言語のコード補完も利用できました。
Cloud9 > Preferences > Experimental > Go Code Completion
で補完機能をONにすることができます。

※注意
ONにしただけでは機能が有効になりません。
一度タブを閉じて再度Workspaceを開き直すと有効になりました。

image

ここまでできれば、学習に利用することができそうです。

ryo-endo
スクラムマスター ソフトウェアエンジニア EC-CUBEの開発をやっています
https://github.com/ryo-endo
ec-cube
日本No.1ECオープンソースのEC-CUBEのコミッターやユーザーのコミュニティです。
http://www.ec-cube.net
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away