最近我正在學習Haxe的flash,並且我有幾個actionscript3的經驗。任何Haxe GC技巧?
Haxe是非常好的語言。
我注意到在as3中有一個刪除操作,有沒有像在Haxe中刪除?是關於gc的「刪除」?有沒有Haxe新手關於內存管理的提示,謝謝?
最近我正在學習Haxe的flash,並且我有幾個actionscript3的經驗。任何Haxe GC技巧?
Haxe是非常好的語言。
我注意到在as3中有一個刪除操作,有沒有像在Haxe中刪除?是關於gc的「刪除」?有沒有Haxe新手關於內存管理的提示,謝謝?
macke已經解釋了delete
算子的用途。在Haxe中使用請參閱本頁:http://haxe.org/doc/advanced/magic
因此,Haxe等效物delete foo.b
是untyped __delete__(foo, "b")
。如果你打算用它了很多,我建議你將它放入一個函數;)
格爾茨
back2dos
我對haxe並不十分了解,但as3中的刪除操作符實際上不會刪除對象。你真的不能強制解構as3。刪除操作符用於刪除對動態對象屬性的引用。例如:
var foo:Object {
a: "Hello, ",
b: "world!",
toString: function() { return a + b; }
}
foo.toString() // Hello, world!
這個匿名對象是動態的,可以添加或刪除屬性。很像哈希表。現在考慮以下幾點:
delete foo.b;
foo.toString(); // Hello, undefined
當刪除時,「富」釋放它的參考屬性「B」,使其成爲不確定的。但'b'的值不一定從內存中刪除。如果其他人蔘考相同的價值,它很可能會繼續存在。因此,刪除僅刪除引用,而不是實際值,因此不會強制垃圾收集。
謝謝,有用的信息。 – 2010-09-18 11:36:00