どもー。
最近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型の変数が多くなるので、できるだけ少なくするテクニックを書きたかったけど、書けずじまいですた。