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