Un módulo es una colección de métodos, constantes y variables de clase. Los módulos se definen como una clase, pero con la palabra clave module no con la palabra clave class.
Puntos importantes sobre los módulos:
- No puede heredar módulos o no puede crear una subclase de un módulo.
- No se pueden crear objetos a partir de un módulo.
- Los módulos se utilizan como espacios de nombres y como mixins.
- Todas las clases son módulos, pero no todos los módulos son clases.
- La clase puede usar espacios de nombres, pero no pueden usar mixins como módulos.
- El nombre de un módulo debe comenzar con una letra mayúscula.
Sintaxis:
module Module_name # statements to be executed end
Ejemplo:
# Ruby program to illustrate # the module # Creating a module with name Gfg module Gfg C = 10; # Prefix with name of Module # module method def Gfg.portal puts "Welcome to GFG Portal!" end # Prefix with the name of Module # module method def Gfg.tutorial puts "Ruby Tutorial!" end # Prefix with the name of Module # module method def Gfg.topic puts "Topic - Module" end end # displaying the value of # module constant puts Gfg::C # calling the methods of the module Gfg.portal Gfg.tutorial Gfg.topic
Producción:
10 Welcome to GFG Portal! Ruby Tutorial! Topic - Module
Nota:
- Para definir el método del módulo, el usuario debe prefijar el nombre del módulo con el nombre del método al definir el método. El beneficio de definir el método del módulo es que el usuario puede llamar a este método simplemente usando el nombre del módulo y el operador de punto como se muestra en el ejemplo anterior.
- Un usuario puede acceder al valor de una constante de módulo utilizando el operador de dos puntos dobles ( :: ) como se muestra en el ejemplo anterior.
- Si el usuario definirá un método con la palabra clave def solo dentro de un módulo, es decir, def method_name , entonces se considerará como un método de instancia. Un usuario no puede acceder al método de instancia directamente con el uso del operador punto ya que no puede crear la instancia del módulo.
- Para acceder al método de instancia definido dentro del módulo , el usuario debe incluir el módulo dentro de una clase y luego usar la instancia de clase para acceder a ese método. El siguiente ejemplo ilustra este concepto claramente.
- El usuario puede usar el módulo dentro de la clase usando la palabra clave include . En este caso, el módulo funciona como un espacio de nombres.
Ejemplo:
# Ruby program to illustrate how # to use module inside a class # Creating a module with name Gfg module Gfg # module method def portal puts "Welcome to GFG Portal!" end # module method def tutorial puts "Ruby Tutorial!" end # module method def topic puts "Topic - Module" end end # Create class class GeeksforGeeks # Include module in class # by using 'include' keyword include Gfg # Method of the class def add x = 30 + 20 puts x end end # Creating objects of class obj_class = GeeksforGeeks.new # calling module methods # with the help of GeeksforGeeks # class object obj_class.portal obj_class.tutorial obj_class.topic # Calling class method obj_class.add
Producción:
Welcome to GFG Portal! Ruby Tutorial! Topic - Module 50
Uso de Módulos: Un módulo es una forma de categorizar los métodos y constantes para que el usuario pueda reutilizarlos. Supongamos que quiere escribir dos métodos y también quiere usar estos métodos en varios programas. Por lo tanto, escribirá estos métodos en un módulo, de modo que pueda llamar fácilmente a este módulo en cualquier programa con la ayuda de la palabra clave require sin tener que volver a escribir el código.
Ejemplo:
# Ruby program for creating a module # define module module Gfg # module method def Gfg.portal() puts "Module Method 1" end # module method def Gfg.tutorial() puts "Module Method 2" end end
Nota: Guarde este programa en un archivo llamado my.rb. Puede usar esto en otro programa con la ayuda de la palabra clave require . Esto es como incluir los archivos de encabezado en el programa C/C++.
Usando el comando:
ruby my.rb
Ahora cree otro archivo que contenga el siguiente código:
# Ruby program to show how to use a # module using require keyword # adding module require "./my.rb" # calling the methods of module Gfg Gfg.portal() Gfg.tutorial()
Guarde este archivo como my1.rb.
Usando el comando:
ruby my1.rb
Producción:
Module Method 1 Module Method 2
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA