4
В названии говорится все. Может быть, метод можно назвать вроде def destruct; delete self;end
?Crystal lang, можно ли явно распоряжаться (бесплатно) экземпляра (объекта), не дожидаясь GC?
В названии говорится все. Может быть, метод можно назвать вроде def destruct; delete self;end
?Crystal lang, можно ли явно распоряжаться (бесплатно) экземпляра (объекта), не дожидаясь GC?
Это возможно, но определенно не рекомендуется, и то, как я покажу вам, может измениться или сломаться в будущем. Зачем тебе это нужно? Идея 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>