Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 将对象设置为零是否常见?_Ruby - Fatal编程技术网

Ruby 将对象设置为零是否常见?

Ruby 将对象设置为零是否常见?,ruby,Ruby,我正在构建一个应用程序,不知道是否将一个未使用的对象设置为 nil是生产级编码中的常见做法 我知道这只是对垃圾收集器的一个提示,不会总是处理对象。根据这一点 如果使用完成员对象,将其设置为nil将引发被引用对象被垃圾收集。如果它是一个局部变量,那么方法exit将执行相同的操作 也就是说,如果您要求将成员显式设置为nil,那么我会质疑您的设计,您不需要做任何事情来给垃圾收集器任何提示。只要使用一种内存效率足够高的算法,它就会为您解决其余问题。不,这不是常见的做法。只有极少数情况下,您会显式地将ob

我正在构建一个应用程序,不知道是否将一个未使用的对象设置为 nil是生产级编码中的常见做法

我知道这只是对垃圾收集器的一个提示,不会总是处理对象。

根据这一点

如果使用完成员对象,将其设置为
nil
将引发被引用对象被垃圾收集。如果它是一个局部变量,那么方法exit将执行相同的操作


也就是说,如果您要求将成员显式设置为
nil

,那么我会质疑您的设计,您不需要做任何事情来给垃圾收集器任何提示。只要使用一种内存效率足够高的算法,它就会为您解决其余问题。

不,这不是常见的做法。只有极少数情况下,您会显式地将object设置为nil

例如,在某些数据结构的实现中,将对象设置为nil是有意义的。假设您实现了一个缓存,并提供了一个删除密钥的方法。让我们进一步假设缓存在内部使用一个数组来保存对已删除对象的引用。然后,建议通过将对已删除对象的所有引用设置为nil来删除这些引用


然而,在实践中,这些情况并不经常发生。

我想这应该会有帮助,但在大多数情况下,你不应该太需要。我唯一一次将变量设置为nil是当我有一个垃圾变量需要从已知设置开始时,即使这样,我也很少需要它。