ひとまずA Tour of Goをひと通りやったので、感想をしたためておく。
感想
- なんかプログラム書いてみるとよいC言語を触ってる気持ちになる
- 匂いが似ている気がする
- Mapの型の書きかたがちょっと慣れない
- が、なにかしら大きめのアプリケーション書いていたら多分慣れそう
- このへんは書き続けていると身につくでしょう
- ポインタ周りの記述が値とものと区別しなくていいのは利点でもあるが、間違いも起こりそう
- ある構造体の変数
s
のメンバx
にアクセスするときs.x
となるけど、s
がポインタでも値でもアクセスする記述方法は同じ - 大っきいアプリ書く時にミスりそうな気もするけど、まあ直接アクセスするような書き方ではなくメソッドを定義するだろうから、気をつけるとは思う
- ある構造体の変数
- GoroutineとChannelがとにかくいい
- 並行処理を書いたりするのがすっごい楽
- A Tour of Go*1の最後のほうで二分木を読み出すWalk関数を作る練習問題があるが、「うおお、楽しい!」と脳汁が出た
- お仕事の都合上、重い帳票をバックグラウンドで非同期に生成して……ということも多くresqueを使っているけど、Goだけで似たようなものを作れそうなのはいい
- しかし検索しづらい言語名だこと
後は手元に一冊ぐらい本を置いておいて、それなりの規模のアプリケーションでも作ってみるかなぁ。
評判はどんなもんなんですかね?
A Tour of GoでGoの世界を巡っていたときのメモ
- ポインタ周り
- Map
- 型の書き方がわかりづらい
- var m map[キーの型]値の型
- 使用する前に make ( new じゃない)で作成する必要があります
- これどうよ?
- メソッド
- クラスはない
- メソッドを任意の型に生やすことはデキる
func (hoge 型名) 関数名() 関数の戻り値の型 { return hogehoge }
- わかりにくい………
- 慣れれば分かる?
- 構造体のポインタに対してメソッド生やしてるのは、コピーとか発生するから?
- ひとつはその通り
- もう一点はそのメソッドがオブジェクトを変更できるから
- そもそもポインタと普通の値とで呼び出し方が一緒なので、区別出来なさそう
- 区別できなくてもいいという判断?
- エラー処理
- Goroutine
*1:これは日本語版