Ruby | Módulo – Part 2

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *