http://code.google.com/p/appengine-go/downloads/list
先日公開されたGoogle App Engine SDK 1.6.2はr60.3という
ちょっと古めのバージョンのままでしたが、
もうすぐGo1がリリースされるのと、最新のGo言語と書き方も違うというのも
開発者からすると大変ですので、ここで、どのような違いがあるかを
まとめておきたいと思います。
(※恐らく、正式版でも大きな変更はないと思いますが、あくまでもGo1ベータでの
違いの確認です。また、ベースは私の書籍のプログラムをベースに見ていきます。)
なんとなくですが、近いうちに公式リリースもされそうな気がするので、
先にこのGo1betaで慣れておく方が良いかもしれません。
最新ドキュメントのURL
http://weekly.golang.org/
私の書籍「Go言語プログラミング入門 」でもリリース後は
読み替える必要がありますのでご注意下さい。
- app.yamlのapi_versionは"3"ではなく、"go1beta"となります。
- ※これに関しては、正式なリリースになれば変更されるでしょう。
- httpパッケージ→"net/http"に変更
- 通信関係のパッケージは大体netパッケージ以下に移動しています。したがって、これまでは、import "http"でしたが、import "net/http"となります。
- os.Error→"error"に変更
- Errorは、osパッケージで定義されたインターフェイスでしたが、パッケージ内のインターフェイスではなく、Go言語全体(?)で使えるインターフェイスになりました。また、エラーメッセージを取得するメソッド名がString()からError()に変わっています。
- time.SecondsToLocalTime()がtime.Unix()に変更
- これまで、ローカル時間を取得するメソッドはSecondsToLocalTime()でしたが、Unix()に変わっています。Unix()メソッドは、第1引数が秒までを指定し、第2引数でナノ秒(小さい時間)を指定するようになっています。
- time.Seconds()がtime.Now()に変更
- 現在日時を取得するメソッドが変更されています。Seconds()はメソッドになりました。秒を取得します。また、time構造体の中身が秒、ナノ秒、Location位置の3つで管理されるようになっています。
- templateパッケージがtext/templateに変更
- 使い方は変わっていませんが、templateパッケージが移動しているようです。
- template.ParseFile()が、template.ParseFiles()に変更(2012/02/03追記)
- template.ParseFile()でファイルを1つのみ解析していましたが、引数に複数のファイル名を渡す事で、複数のファイルを解析できるようになっています。これまで通り、1つでも実行できますので、メソッド名のみ変更しておけば問題ありません。
- template.Must(template.New("html").ParseFiles("sample.html"))→template.Must(template.ParseFiles("sample.html"))にする。
- template.ParseFiles()がtemplate構造体のメソッドと関数の2つに増えています。単純にhtmlを読み込んで実行するの(書籍の例など)であればtemplate.ParseFiles("sample.html")など、New()を呼び出す必要はありません。
- datastore.Timeが削除されています。go1beta以降では、time.Timeを利用すれば良いようです。
- フォーマットを指定したい場合は、Format()が用意されていますので、書籍では、fmt.Sprintfを使って書式指定していましたが、go1betaでは、comments_view[pos].Date = comment.Date.Format("2006/01/02 15:04:05")という感じになります。
- 以前書いたBlog記事(Goでの日付変換)も参考にして下さい。
- datastore.SecondsToLocalTime()も削除されています。
- datastore.Timeで管理する必要がなくなりますので、time.Timeで定義し、time.Now()で取得して下さい。
0 件のコメント:
コメントを投稿