2016-02-08 2 views

ответ

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>