URL: http://atnd.org/events/34622
皆さんこんばんは。Booやってますか?
万年素人のshinriyoです。
「Boo Language Advent Calendar 2012 2日目 Title:「Booがいかに素晴らしいか?」」で行った、辞書型をC#風とBoo風で勝負します。
Booの書き方は辞書の初期化ないですね。そこ((A)のとこ)も時間測るので卑怯って言わないでね。
dic・・・C#風(Dictionaryを使って書く)
booDic・・・Boo風(辞書型リテラルを使って書く)
コードはこうしました。Pythonっぽく美しくて短くかけていいですね。
・Compare.boo
import UnityEngine import System.Collections.Generic class Compare (MonoBehaviour): private dic as Dictionary[of string, string] private booDic = {} def Start (): # C# like start as single = Time.realtimeSinceStartup dic = Dictionary[of string, string]() # (A) for num in range(0, 1000): dic[num.ToString()] = num.ToString() for num in range(0, 1000): Debug.Log(dic[num.ToString()]) finish as single = Time.realtimeSinceStartup # Boo like booStart = Time.realtimeSinceStartup for num in range(0, 1000): booDic[num.ToString()] = num.ToString() for num in range(0, 1000): Debug.Log(booDic[num.ToString()]) booFinish = Time.realtimeSinceStartup # result Debug.Log ("CS like" + (finish - start).ToString ()) Debug.Log ("Boo like" + (booFinish - booStart).ToString ())
1000回突っ込んで1000回出すだけw
これじゃダメって人はツッコミいれてね。
文字型Key、文字型Valueですよ。
何度か結果
CS like0.278652 Boo like0.240931
CS like0.288617 Boo like0.224245
CS like0.279127 Boo like0.229331
あまり変わりませんでしたが、Booが微妙に速いか?
0.05秒くらい。
まぁ微妙に速いし短く書けるならそれに越した事無いですね?
次はなにかこうかしら。