Crystal lang,是否可以在不等待GC的情况下显式处理(自由)实例(对象)?

时间:2016-02-08 06:14:19

标签: crystal-lang

标题说明了一切。也许有一种方法可以被称为def destruct; delete self;end

1 个答案:

答案 0 :(得分:5)

这是可能的,但绝对不推荐,我将向您展示的方式可能会在未来改变或打破。你为什么需要这个? GC的想法正是不用担心这些事情。

class Foo
  def initialize
    @x = 10
  end

  def finalize
    puts "Never called"
  end
end

foo = Foo.new
p foo # => #<Foo:0x10be27fd0 @x=10>
GC.free(Pointer(Void).new(foo.object_id)) # This line frees the memory
p foo # => #<Foo:0x10be27fd0 @x=1>