A Tutorial for the Go Programming Language
昨日の続きです。ちょこちょこプログラムを書いていきます。
An I/O Package
ここではファイルへの操作をラップするモジュールを作りました。ここで面白かったのはメソッドの定義でしょうか。Goではクラスに相当するものはstructのようです。明示的にclassとは書かないようですね。そしてそのメソッドもstructの定義中ではなく定義の外で記述します。
// 構造体定義 (ここでは変数だけ) type File struct { fd int name string } // 構造体メソッド定義 func (file *File) Read(b []byte) (ret int, err os.Error) { // ... }
最近の動的言語ではよくあるようにIntegerなどの組み込み型にもメソッドを追加することが出来ます。
あと面白いと感じたのは戻り値に複数の値を返せること。上のReadメソッドでも二つ返しています。でもここはちょっと・・・と思ったのは、変数名やメソッド名を大文字で始めるとPublicになる、という規則。これはあんまり好きじゃありません。名前は人それぞれしっくり来るものがあります。なので個々人で決めたいと思うわけです。