例如:
i = 3
close(i)
假设3是一个打开的文件描述符。
答案 0 :(得分:2)
您需要IO
个对象才能在其上调用IO#close
:
io = IO.for_fd(3)
# Actually, `for_fd` is just an alias for `new`, but it reads nice here
io.close
# or simply
IO.for_fd(3).close
事实上,即使只是说
IO.for_fd(3)
没有调用close
可能就足够了,因为我们没有将返回的IO
分配给任何变量,它有资格进行垃圾收集,最终可能会在某个未指定的时间收集垃圾。未来和终结者将close
它......但依赖于它是一个非常糟糕的主意,因为你不知道何时该对象将被垃圾收集。如果程序永远不会耗尽内存,实际上根本无法收集它。