JSのコードをHaxeしたときのこと。


どもー。

最近JSで書かれたアプリケーションを、Haxeに移植しています。んで、まったく難なかったことについてはなす。

JSのコードをHaxeで書き直したことについて。

さてさてどういうJSコードかというと、JSでかかれたwebアプリケーションのクライアントサイドのJSコードでして、snap.svgでいろいろ描画して、Ajaxでjsonデータとってきたりいろいろしてますた。

結構ちゃんと、JSでクラス化してて、読んでて良いコードですた。んで、やや訳あってHaxeのコードに書きかえますた。

ほとんどはなんにも問題は起こらなかった!!!

はじめに言っておきますが、結構クラスライクなJSコードでしたので、全く悩むところはありませんでした。すんなり書けますた。

そんなことなんで、あんまりコノJS移植ネタで書くネタが少ないので困ってますww

連想配列の型とかの扱いについて。

連想配列にちょっと考えたかなー。

var x = {};
x["ten"] = 10;
x["foo"] = function(x){ return x; }

これは実行以前に、連想配列のキーと値が分かれば、構造体にするなりクラスにすれば問題ないのですが、実行時にこういうことされるとDynamicつかうしかないんですよねー。

Map<String, Dynamic>型しかないけど、Dynamicつかいたくない。

けどDynamicは使いたくない。補完効かなくなるし。
まぁ、仕方ないけど、Dynamicを使うしかないんですよねー。

できるだけ、Dynamicを解消しておく。

なので、Dynamic嫌いなので、さっさとDynamicな変数を解消しておきますた。

class Sample{
    public static function main(){
        var map : Map<String, Dynamic> = ["one" => 1, "foo" => function(x){ return x; }];
        var foo : Int -> Int = map.get("foo");
        trace(foo(10));
    }
}

まとめ。

もともとのJSのコードが素晴らしすぎた!!!

JSはDynamic型の変数が多くなるので、できるだけ少なくするテクニックを書きたかったけど、書けずじまいですた。