Kuinでポリモーフィズムできるか実験
昨日Kuin1.00がリリースされましたね。
ということで早速使ってみました。
と、その前にKuinってなんぞや?という人もいると思うので軽く説明。
ってか抜粋。
プログラミング言語Kuinは、「HSP並みに作りやすく、C++並みに実用的な言語」というコンセプト
で制作された、究極の言語です。 Kuinの主な特徴について以下に列挙します。
・ オブジェクト指向でありながら、可能な限りシンプルで解りやすい設計
・言語設計の美しさより、実用面での美しさを重視
・ポインタ、イテレータ、テンプレートなど、ややこしい概念はすべて排除(代替機能を用意)
・動的メモリは自動で解放されるので、解放処理が不要
・豊富な標準ライブラリ(3D描画なども簡単)
・コンパイル速度が爆速
・64bitネイティブ機械語を生成するので、実行速度も速い
・何もプログラムを書かなければ、自動でHello World!!になる
製作者はいわずとしれたくいなちゃん(@b2)
さて、ドキュメントにポリモーフィズムとかそこらへんのこと全然書かれていないので
使えるのかな?とか疑問に思ったので試してみた。
結論から言うと使えて以下の様な感じになる。
class Hoge() func method() do Dbg@Log("hoge") return end func end class class Foo(@Hoge) +func method() do Dbg@Log("foo") return end func end class func getInstance(id :int) : @Hoge if (id = 0) return #@Hoge else return #@Foo end if end func func Main() var a: @Hoge :: @getInstance(0) do a.method() do a :: @getInstance(1) do a.method() do Kuin@Stop() end func
迷った点はグローバルスコープのものはすべて@で修飾しなくちゃいけないということでしょうか?
関数やクラスも@で修飾しないといけません。それさえ気をつければあとはドキュメントにしたがって
直感どおりかけます。
ぱっと見気持ち悪いですがなれるとスラスラかけて良い。
次作るゲームにはKuin使おうと思う。
はてなのハイライトはやくKuinに対応しないかな...