【发布时间】:2018-09-17 19:14:43
【问题描述】:
我想知道在 Common Lisp 中销毁通过 defstruct 创建的结构的选项是什么。似乎自动提供了一个构造函数;但是,析构函数并非如此。
有哪些方法可以从记忆中“清除”一个结构?想到(setq my-struct NIL) 之类的东西,但我不确定这是否是最干净的方法?
编辑:
当我试图测试如果我使用结构作为键将某些内容键入哈希表然后破坏该结构时会发生什么,问题就出现了。哈希表中的键会发生什么?我想这更多的是关于如何实现哈希表的问题。
【问题讨论】:
-
你为什么在乎?当你不再使用它时,GC 会为你做。
-
确保使用局部变量而不是全局变量来保存临时对象。当变量的作用域结束时,垃圾回收会回收内存。
-
这类似于 JavaScript、PHP、Python 和 Ruby。您不必像在 C 或 C++ 中那样手动管理内存。
-
我明白这一切。当我试图测试如果我使用结构作为键将某些内容键入哈希表然后破坏该结构时会发生什么,问题就出现了。哈希表中的键会发生什么?我想这更多是关于如何实现哈希表的问题。
-
@MadPhysicist 您能否将此评论添加为您的问题的一部分?
标签: data-structures garbage-collection lisp common-lisp