Garbage collection lua中的弱表-实际用途是什么?
我知道什么是弱表。Garbage collection lua中的弱表-实际用途是什么?,garbage-collection,lua,weak-references,Garbage Collection,Lua,Weak References,我知道什么是弱表。 但我想知道弱表在哪里可以实际使用 医生说 弱表通常用于希望注释的情况 不改变它们的价值观 我不明白。这意味着什么?通常,当对象超出范围时,存储对对象的引用将防止该对象被回收。弱引用不会阻止垃圾收集。通常,存储对对象的引用将防止在对象超出范围时回收该对象。弱引用不会阻止垃圾收集。作为评论的答案发布 因为Lua不知道你认为什么垃圾,它不会收集任何东西,它不一定是垃圾。在某些情况下(其中一种可能是调试),您希望为变量指定一个值,而不会导致Lua将其视为“非垃圾”。根据我的理解,弱表
但我想知道弱表在哪里可以实际使用 医生说 弱表通常用于希望注释的情况 不改变它们的价值观
我不明白。这意味着什么?通常,当对象超出范围时,存储对对象的引用将防止该对象被回收。弱引用不会阻止垃圾收集。通常,存储对对象的引用将防止在对象超出范围时回收该对象。弱引用不会阻止垃圾收集。作为评论的答案发布
因为Lua不知道你认为什么垃圾,它不会收集任何东西,它不一定是垃圾。在某些情况下(其中一种可能是调试),您希望为变量指定一个值,而不会导致Lua将其视为“非垃圾”。根据我的理解,弱表允许您执行通常对变量/对象/等执行的操作,但如果它们是弱引用的(或在弱表中),它们仍将被Lua视为垃圾,并在调用垃圾收集函数时被收集
示例:考虑是否要使用关联数组,在两个单独的私有表中使用键/值对。如果您只想将密钥表用于一个特定用途,那么一旦您使用完它,它将在Lua中被锁定。但是,如果使用弱表,则可以在使用完它后立即将其作为垃圾收集,从而释放它正在使用的资源 为了解释一个关于注释的神秘句子,当你“改变”一个变量时,你将它锁定为存在,Lua不再认为它是垃圾。“注释”变量意味着给它一个名称、数字或其他值。因此,这意味着您可以在不锁定变量存在的情况下为变量指定名称/值(这样Lua就可以对其进行垃圾收集) 翻译:
弱表通常用于您希望为某个值命名而不锁定该值的情况,这会占用内存。
作为注释的答案发布
因为Lua不知道你认为什么垃圾,它不会收集任何东西,它不一定是垃圾。在某些情况下(其中一种可能是调试),您希望为变量指定一个值,而不会导致Lua将其视为“非垃圾”。根据我的理解,弱表允许您执行通常对变量/对象/等执行的操作,但如果它们是弱引用的(或在弱表中),它们仍将被Lua视为垃圾,并在调用垃圾收集函数时被收集
示例:考虑是否要使用关联数组,在两个单独的私有表中使用键/值对。如果您只想将密钥表用于一个特定用途,那么一旦您使用完它,它将在Lua中被锁定。但是,如果使用弱表,则可以在使用完它后立即将其作为垃圾收集,从而释放它正在使用的资源 为了解释一个关于注释的神秘句子,当你“改变”一个变量时,你将它锁定为存在,Lua不再认为它是垃圾。“注释”变量意味着给它一个名称、数字或其他值。因此,这意味着您可以在不锁定变量存在的情况下为变量指定名称/值(这样Lua就可以对其进行垃圾收集) 翻译:
<代码>弱表通常用于希望在不锁定值的情况下给一个值加上一个值,这占用了内存。 < /P>因为Lua不知道你认为什么是垃圾,它不会收集任何不一定是垃圾的东西。在某些情况下(其中一种可能是调试),您希望为变量指定一个值,而不会导致Lua将其视为“非垃圾”。据我所知,弱表允许您执行通常对变量/对象/等执行的操作,但如果它们是弱引用的(或在弱表中),则它们仍将被Lua视为垃圾,并在调用垃圾收集函数时被收集。@rownage感谢您提供的信息
在某些情况下
你说的。您可以指定这种情况吗?请考虑是否要使用关联数组,在两个单独的私有表中使用键/值对。如果您只想将密钥表用于一个特定用途,那么一旦您使用完它,它将在Lua中被锁定。然而,如果您使用的是一个弱表,那么在您使用完它之后,您就可以将其作为垃圾收集,从而释放出它正在使用的资源。啊,现在释放出资源,然后!有道理。这意味着什么?弱表通常用于您希望在不更改值的情况下注释值的情况。
?BTW.,如果你能发布这个答案,我会接受它:一个很好的例子。既然Lua不知道你认为什么垃圾,它就不会收集任何不一定是垃圾的东西。在某些情况下(其中一种可能是调试),您希望为变量指定一个值,而不会导致Lua将其视为“非垃圾”。据我所知,弱表允许您执行通常对变量/对象/等执行的操作,但如果它们是弱引用的(或在弱表中),则它们仍将被Lua视为垃圾,并在调用垃圾收集函数时被收集。@rownage感谢您提供的信息在某些情况下
你说的。您可以指定这种情况吗?请考虑是否要使用关联数组,在两个单独的私有表中使用键/值对。如果您只想将密钥表用于一个特定用途,那么一旦您使用完它,它将在Lua中被锁定。如果你要使用