最近我正在学习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