5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

他言語プログラマがGo言語を読むための豆

Posted at

急にGoで書かれたソースコードを読む必要があったので、最低限これくらいは把握しておくと、雰囲気はつかめるかな、ということをまとめました。あくまで読むだけです。書くにはいろいろ足りません。

気になったら詳細な解説はそれぞれ調べてください。

関数の書式

以下はMyStructという自分で作った構造体のメソッドを定義する例です。

func (s *MyStruct) addAndGetValue(input int) int {
    s.value += input
    return s.value
}

引数int、戻り値int、構造体のポインタ指定など、こんな感じになります。

defer

deferは予約語です。

func someFunction() {
    defer fmt.Println("グラディウス")
    
}

このように書いておくと関数の最後にdeferで指定した文を最後に実行することができます。
ロックの開放とかですかね。

スライスとmake

データ構造がわかれば、そのプログラムはわかったも同然ですよね(いいすぎ)。
スライスは可変長配列です。makeは初期化に使います。まあnewみたいなもの。newもあります。

hoge := make([]int, 100)

mapとmapのループ

mapも組み込まれています。
rangeですべての要素に対してループできます。

var m map[string]int
sum := 0
for _, value := range m { 
    sum += value
}

変数宣言はvarだったり、:=だったり。
"_"はブランクを表します。keyを使わない場合はこれを使います。
Goは使わない変数宣言やimportが許されません。

GOPATH

環境変数です。
importの基準となるディレクトリです。CLASSPATH的な。
importされているモジュールを参照したいときは$GOPATH/srcあたりを探すと見つかるかもしれません。

参考

http://golang.jp/effective_go
http://qiita.com/mizukmb/items/b543f88bc37c9a75673f

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?