Utilice el método freeze en Ruby
Este artículo presentará cómo podemos usar el método freeze
para objetos en Ruby.
Utilice el método freeze
en Ruby
Podemos usar el método freeze
en Ruby cuando ya no queremos alterar un objeto y queremos asegurarnos de que no se pueda modificar. Podemos generar rápidamente objetos inmutables usando este método.
El programa mostrará un error si intentamos alterar un objeto sobre el que se aplica el método freeze
. A continuación se muestra un caso de uso del método freeze
con una matriz.
# Ruby
fruits = ["orange","banana","strawberry"]
fruits.freeze
fruits <<"watermelon"
Obtendremos un error cuando intentemos ejecutar este código. En el caso de una cadena, el uso del método freeze
se muestra a continuación.
# Ruby
str = "Hey"
str.freeze
str <<" How are you?"
Esto también mostrará errores de tiempo de ejecución. En el caso de un objeto, el uso del método freeze
se muestra a continuación.
# 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
Producción:
En los ejemplos anteriores, ocurrió un error porque habíamos intentado alterar objetos cuando ya estaban congelados por el método freeze
.
Limitaciones del Método freeze
en Ruby
Existen algunas limitaciones en el método freeze
. Es fundamental entender que podemos modificar variables relacionadas con objetos congelados.
Esto se debe a que solo hemos congelado los objetos usando este método. Las variables que están relacionadas con esos objetos pueden modificarse libremente.
Aquí hay un ejemplo que ilustra cómo podemos cambiar un objeto congelado a algo nuevo accediendo a la misma variable.
# Ruby
str = "Hey James"
str.freeze
str = "Hey Petr"
puts str
Producción:
Podemos utilizar el método freeze
para comprobar si un objeto es inmutable.
# Ruby
str2 = "Hey Julia"
str2.freeze
str4 = "Julia is very nice"
num = 120.5
num.freeze