最近、Haxe for Flashを学んでおり、ActionScript3の経験があります。
delete
AS3に操作があることに気づきましたがdelete
、Haxeのようなものはありますか?delete
GCについてですか?メモリ管理に関するHaxe初心者向けのヒントはありますか?
最近、Haxe for Flashを学んでおり、ActionScript3の経験があります。
delete
AS3に操作があることに気づきましたがdelete
、Haxeのようなものはありますか?delete
GCについてですか?メモリ管理に関するHaxe初心者向けのヒントはありますか?
Haxeについてはよくわかりませんがdelete
、AS3のオペレーターは実際にはオブジェクトを削除しません。AS3で強制的に解体することはできません。delete
演算子は、動的オブジェクトのプロパティへの参照を削除するために使用されます。例えば:
var foo:Object {
a: "Hello, ",
b: "world!",
toString: function () { return a + b; }
}
foo.toString() // Hello, world!
この匿名オブジェクトは動的であり、プロパティを追加または削除できます。ハッシュテーブルによく似ています。ここで、次のことを考慮してください。
delete foo.b;
foo.toString(); // Hello, undefined
削除が発生するfoo
と、プロパティへの参照を解放し、b
それを作成しundefined
ます。ただし、の値はb
必ずしもメモリから削除されるとは限りません。他の誰かが同じ値を参照している場合、それはおそらく固執します。したがって、delete
実際の値ではなく参照のみを削除するため、ガベージコレクションを強制することはできません。
マーカスはすでにdelete
オペレーターが何をするかを説明しました。Haxeでの使用については、このページを参照してください。
したがって、Haxeに相当するものはdelete foo.b
ですuntyped __delete__(foo, "b")
。あなたがそれをたくさん使うつもりであるならば、私はあなたがそれを関数に入れることを提案します;)