La programación funcional es muy común hoy en día, donde tenemos que escribir una función para actualizar y modificar las variables o hacer algunas modificaciones según el requisito. En Julia tenemos dos enfoques para actualizar y modificar las variables y objetos que son Funciones Puras y los demás son Modificadores veamos uno por uno cada uno de ellos con ejemplos.
Funciones puras
Cuando estamos trabajando en una función y no realiza ningún tipo de cambio utilizando ese objeto que se pasa como argumento. O podemos decir que necesitamos crear una instancia separada de la misma clase para actualizar la variable y devolver el objeto recién actualizado.
Digamos que tenemos una estructura de estudiante y esa estructura tiene atributos como el nombre del estudiante, el número de registro del estudiante, el número de móvil del estudiante y la dirección del estudiante y estamos inicializando todas las variables para demostración.
Julia
# Create Structure Student struct Student name::String address::String roll::Integer mobile::Integer end # Initialize the Structure Student gfg = Student("ABC", "DEF", 100, 100000000)
Ahora supongamos que tenemos que actualizar el número de móvil del estudiante, tenemos que hacer un cambio de nombre de función móvil donde tenemos que pasar el objeto de tipo de estudiante y otro es el nuevo número de móvil para obtener la actualización y devolver el nuevo objeto de tipo de estudiante después actualización
Julia
# Create a Function name changeMobile function changeMobile(stud::Student, newmobile::Integer) name = stud.name address = stud.address roll = stud.roll demo_gfg = Student(name, address, roll, newmobile) return demo_gfg end
A partir de ahora, hemos creado nuestra función. Ahora tenemos que usar esta función para actualizar el número de móvil del estudiante existente sin cambiar las variables directamente.
Julia
# Use the changeMobile function changed_gfg = changeMobile(gfg, 400000000) println(changed_gfg)
Producción :
Modificadores
Cuando estamos trabajando en una función y realiza algún tipo de cambio utilizando ese objeto que se pasa como argumento. O podemos decir que no necesitamos crear una instancia separada de la misma clase para actualizar la variable y devolver el mismo objeto actualizado.
Digamos que tenemos una estructura de automóvil y esa estructura tiene atributos como el nombre del automóvil, el número del automóvil, el nombre del propietario del automóvil y el precio del automóvil y estamos inicializando todas las variables para la demostración.
Julia
# Create Structure Student struct Car name::String number::String owner::String price::Float64 end # Initialize the Structure Car gfg = Car("ABC", "DL123", "Kiki", 45000.00)
Ahora supongamos que tenemos que actualizar el precio de un automóvil, tenemos que hacer un cambio de nombre de función Precio donde tenemos que pasar el objeto de Tipo de automóvil y otro es el precio del automóvil actualizado para obtener una actualización y devolver la misma instancia actualizada de un Automóvil tipo de objeto.
Julia
# Create a Function name changePrice function changePrice(car::Car, newprice::Float64) name = car.name number = car.number owner = car.owner gfg = Car(name, number, owner, newprice) return gfg end
A partir de ahora, hemos creado nuestra función. Ahora tenemos que usar esta función para actualizar el precio del automóvil existente sin cambiar las variables directamente.
Julia
# Use the changePrice function gfg = changePrice(gfg, 500000.500) println(gfg)
Producción :
¿Qué metodología deberíamos preferir para escribir cualquier función?
Siempre debemos preferir la metodología de función pura porque no perderemos nuestros datos originales y también podemos tener datos actualizados en los que podemos trabajar. Este tipo de metodología crea funciones que son más rápidas de desarrollar y tienen menos posibilidades de tener errores que los programas que usan modificadores .
Publicación traducida automáticamente
Artículo escrito por Jitender_1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA