3

最近我正在學習Haxe的flash,並且我有幾個actionscript3的經驗。任何Haxe GC技巧?

Haxe是非常好的語言。

我注意到在as3中有一個刪除操作,有沒有像在Haxe中刪除?是關於gc的「刪除」?有沒有Haxe新手關於內存管理的提示,謝謝?

回答

6

macke已經解釋了delete算子的用途。在Haxe中使用請參閱本頁:http://haxe.org/doc/advanced/magic

因此,Haxe等效物delete foo.buntyped __delete__(foo, "b")。如果你打算用它了很多,我建議你將它放入一個函數;)

格爾茨
back2dos

10

我對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'的值不一定從內存中刪除。如果其他人蔘考相同的價值,它很可能會繼續存在。因此,刪除僅刪除引用,而不是實際值,因此不會強制垃圾收集。

+0

謝謝,有用的信息。 – 2010-09-18 11:36:00