Utiliser la méthode Freeze dans Ruby

Hassan Ejaz 15 février 2024
Utiliser la méthode Freeze dans Ruby

Cet article présentera comment nous pouvons utiliser la méthode freeze pour les objets dans Ruby.

Utiliser la méthode freeze en Ruby

Nous pouvons utiliser la méthode freeze dans Ruby lorsque nous ne voulons plus modifier un objet et que nous voulons nous assurer qu’il ne peut pas être modifié. Nous pouvons rapidement générer des objets immuables en utilisant cette méthode.

Le programme affichera une erreur si nous essayons de modifier un objet sur lequel la méthode freeze est appliquée. Un cas d’utilisation de la méthode freeze avec un tableau est présenté ci-dessous.

# Ruby

fruits = ["orange","banana","strawberry"]

fruits.freeze

fruits <<"watermelon"

Nous aurons une erreur lorsque nous essaierons d’exécuter ce code. Dans le cas d’une chaîne, l’utilisation de la méthode freeze est illustrée ci-dessous.

# Ruby

str = "Hey"

str.freeze

str <<" How are you?"

Cela affichera également les erreurs d’exécution. Dans le cas d’un objet, l’utilisation de la méthode freeze est illustrée ci-dessous.

# Ruby

class Fruits
    def initialize(name)
        @name = name
    end

    def get_name
        return @name
    end

    def set_name(name)
        @name = name
    end
end

a = Fruits.new("apple")

a.freeze
a.set_name("melon")
puts a.get_name

Production:

méthode freeze en Ruby

Dans les exemples ci-dessus, une erreur s’est produite car nous avions tenté de modifier des objets alors qu’ils étaient déjà figés par la méthode freeze.

Limitations de la méthode freeze en Ruby

Il y a quelques limites à la méthode freeze. Il est essentiel de comprendre que nous pouvons modifier les variables liées aux objets figés.

C’est parce que nous avons seulement gelé les objets en utilisant cette méthode. Les variables liées à ces objets peuvent être modifiées librement.

Voici un exemple illustrant comment nous pouvons changer un objet gelé en une nouvelle chose en accédant à la même variable.

# Ruby

str = "Hey James"
str.freeze

str = "Hey Petr"

puts str

Production:

limitations de la méthode freeze en Ruby

On peut utiliser la méthode freeze pour vérifier si un objet est immuable.

# Ruby

str2 = "Hey Julia"

str2.freeze

str4 = "Julia is very nice"

num = 120.5

num.freeze