夢追い人

"It takes a dreamer to make a dream come true."―Vincent Willem van Gogh

GAE/G初め

こんばんは!

今日は、こんな本(筆者ブログにつながります)買ったので勢いで今日終わらせた部分を少々おさらい的な感じで・・・


あれですね、最近はブログめっきり書かないのでプラグインを使うのが大変です(笑)


とりあえず変数

はい。そういうわけでとりあえず変数
Go言語にはたくさん変数宣言の方法があってすごいです(笑)

とりあえずは列挙かな。。。

// 基本
var i int = 5
var j = 123.456
var k int
var integer, floating, str = 1, 2.0, "Hello"
var l uint32 = 2
// まとめて
var (
i int = 5
j = 123.456
k int
integer, floating, str = 1, 2.0, "Hello"
l uint32 = 2
)
// 省略
i := 5
j := 123.456
integer, floating, str = 1, 2.0, "Hello"
l := 2
変わってますよね〜
基本、まとめて、省略といれましたけど、全部やってること同じなんですよ(笑)

とりあえず一番の特徴は型を明示しなくても明らかな値であれば自動で識別してくれちゃうということです。
だから型の違うものをまとめて代入できちゃうわけですよね〜www


あと、Syntax Highright使うためにJavaScriptのやつでやってるので色ついてないんですけど、uint32っていう不思議な型名がありますよね?(あくまで一般論として)
実はこれ、uintの32bit型という意味で(大半の方の予想通り)Goの型名はほとんどこのような一般的な型名+bit数で構成されてるんです

わかりやすいですよね(^O^)まぁだから一般的な型名というのはintとfloatとstring,それにboolやuint(unsignedintですね),あとおまけでcomplexなんかもあります(複素数がデフォルトで扱えちゃうw)
なんていうんでしょうか、Googleらしいと言おうとすると難しい気はするけど怠慢な感じもしますよねw

おまけ

はやくもおまけ。ゆっても今日はこの程度しかやってませんからね(^_^;)
ってかむしろこれをやる時間も2月まで極力さけて競技プログラミングのほうやんないといけないんですけど・・・まぁA3のためです。。。
おまけはGAE上でのGoの基本プログラム、Hello Worldです(^O^)


package helloworld
import (
"fmt"
"http"
)
func init() {
http.HandleFunc("/", handler)
}
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello World!")
}
まだこれの解説は読んでませんが、とりあえず今わかることからのいろいろな推測。
まずこれは書いてあったことですがFprintfはCのfprintfと同じと書いてあったのでwに"Hello World!"を反映しているのでしょうね。

で、ResponseWriterというのがおそらく型名から察するにそこに書くこと、でまぁこのプログラムではrは使われてないのでこっちはわかりませんが、GAE上ではinit()が最初に呼び出され、HandleFuncでアドレスの/にhandlerの実行結果、つまるところwを書き出す。。。とりあえず言葉はゴタゴタしてしまいましたがこんな認識でしょう。。。
まぁ、あとでわかることなのでこれはここらへんで


・・・というわけでした。ともかく努力にDemanger完成を目指してがんばります(^O^)