すらいむがあらわれた

こまんど >  たたかう  にげる

第13回GTUG Girls Meetup 9/12「Go言語を使ってみよう」に参加しました

9/12に開催されたGTUG GirlsのGo言語講習会に行ってきました。


だいたいスタートが19:00なのですがこの時間には間に合わず、30分ほど遅刻して参加。
GTUG Girlsでは「なごみタイム」と称して開始から約30分ほどお菓子をつまみながら交流する時間があるのですが毎回私は間に合わず、講習開始直後くらいに会場到着。


今回の会場はフューチャーアーキテクトさん。すごくオシャレなオフィス…。
オフィス入り口あたりに滝がながれていたり、ジャングルみたいなでっかい観葉植物があったり。
圧倒されて写真を取り忘れてしまったのでかわりに#gtuggirlsで流れていた写真を。

(twitterから@shinseitaroさんの写真を拝借してます。)

Go言語講座の講師は@ymotongpooさん。
当日資料 GTUG Girls Meetup #13 Go言語を使ってみよう
https://gist.github.com/ymotongpoo/03e02888cc693ec83732
GoでさくっとWebサーバーをつくってしまおう!という内容です。


印象に残ったことを箇条書きでまとめ。

  • 小文字だとprivate、大文字がpublicっぽい扱い

プロパティやメソッドの名前の頭文字が小文字だとprivateっぽい扱いでパッケージ外に公開されない。大文字にすると公開される。
たとえば、fmt.println() はダメ。 fmt.Println()ならよし。
fmt.Println() はキモいという声がありましたが、私はC#つかいなのでメソッド頭文字大文字は無問題。

  • 変数定義は 「var 変数名 型名」

これもキモいw という声がありました。私もキモイとおもった(^^;
関数もこんな感じになる。

func add(x int, y int) int {
    return x + y
}
  • いろいろルールがある。

まずコードはUTF-8じゃないとダメ。(余談:なんでもUTF-8作った人とGo言語を作った人は同じなんだそうですよ。)
次に、インデントはタブで。gofmtというgoのformat機能はタブで整形するらしい。
後、if文ではelseの前で改行しちゃいけない。

// OK
if 条件 {
} else {
}

// Error!
if 条件 {
} // ここで改行しちゃ行けない
else {
}
  • pythonみたい?(個人的感想)

言語の書き方にルールがおおいところとか。
ステートメントに() が不要なところとか。

    if x < 0 {
        return sqrt(-x) + "i"
    }

あとスライスとか。

  • classはない

classのしくみはなく、struct型にメソッドを定義してclassのように使うらしい。

  • whileもない

for文だけで表現する。これでwhileになる。
http://go-tour-jp.appspot.com/#19

    for sum < 1000 {
        sum += sum
    }
  • お手軽にWebサーバーができる

講習の資料から。これだけで http://localhost:8080/ にWebサーバーが立つ。
Webサーバーがすぐできる、というあたり新時代の言語な感じ。

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, GTUG Girls")
}

講習の最後でコンパイルしたものを隣の人と交換して動かしてみましょう!というのがあったのですが、そのときチューターさんに聞いてみたところGoはクロスコンパイルが簡単にできるようです。

Go言語でクロスコンパイルする
http://atotto.hatenadiary.jp/entry/20120501/1335846012
Goはクロスコンパイルが簡単
http://unknownplace.org/archives/golang-cross-compiling.html


当日のtogetterはこちら。
togetter 第13回GTUG Girls Meetup 「Go言語を使ってみよう」
http://togetter.com/li/563035


最後にみんなでgopher君と一緒に記念撮影しました!