• [^] # Re: Oui, mais...

    Posté par . En réponse à la dépêche Interview de Matz le créateur de Ruby. Évalué à 3.

    Le destructeur est une méthode qui est appelée lors de la désallocation de l'objet, ça n'implique pas qu'on ait à la provoquer soi-même.

    Je sais bien, mais en pratique faire des dtors qui ne sont pas appelés de manière deterministe n'est pas toujours simple.

    et le destructeur se charge de l'enregistrer quand on a fini. [...]

    Ruby permet aussi ce genre d'idiomes à la C++, par exemple :

    File.open("foobar.txt") { |filehandle|
    ...
    }

    à la fin du bloc, le fichier est fermé. Et ce genre d'idiome (RAII - Ressource Allocation Is Initialisation) ne peut vraiment fonctionner que si tu as un appel deterministe de ton dtor.

    En plus Cédric Foll nous dit qu'il y a bien des finalizers en Ruby, j'aurais du mieux regarder mon pickaxe avant de te répondre :-).