finalize
Si une classe définit une méthode finalize,
quand une instance de cette classe passe au ramasse-miette,
cette méthode est appelée:
```crystal class Foo def finalize
# Appelée lorsque Foo passe au ramasse-miette
puts "Bye bye from #{self}!"
end end
Utilisez cette méthode pour libérer des ressources allouées par des bibliothèques externes qui ne sont pas directement géré par le collecteur d'ordures Crystal.
Des exemples de ceci peuvent être trouvés dans IO::FileDescriptor#finalize
ou OpenSSL::Digest#finalize.
Note:
La méthode
finalizesera seulement appelée quand l'objet a été complétement initialisé via la méthodeinitialize. Si une exception est relevée dans la méthodeinitialize,finalizene sera pas appelée. Si votre classe définit une méthodefinalizeassurez-vous de récupérer toutes les exceptions qui pourraient être levées dans les méthodesinitializeet de libérer les ressources.L'attribution de toute nouvelle instance d'objet lors de la collecte des ordures pourrait en résulter dans un comportement indéfini et très probablement bloquant votre programme.