Qu'est-ce qu'un module Ruby?

Qu'est-ce qu'un module?

Un module est un ensemble de processus.

#Exemple: module de calcul qui résume le traitement de l'addition et de la soustraction
module Calculate
  def add(a, b)
    a + b
  end

  def sub(a, b)
    a - b
  end
end

Différence entre module et classe

Les modules et les classes sont similaires, mais avec les différences suivantes:

Utilisation du module

Le module est utilisé aux fins suivantes.

Fournir un espace de noms

La même classe peut être utilisée comme classe différente en la plaçant dans un module avec un nom différent.

#Exemple: inclure la même classe Image dans un autre module et différentes classes (utilisateur)::Image et message::Traiter comme une image)
module User
  class Image
    def self.hoge
      puts 'user image'
    end
  end
end

module Post
  class Image
    def self.hoge
      puts 'post image'
    end
  end
end

User::Image.hoge #=> "user image"
Post::Image.hoge #=> "post image"

Incorporer dans la classe comme méthode d'instance

Vous pouvez utiliser la méthode include pour inclure le traitement du module en tant que méthode d'instance de la classe cible.

#Exemple: incorporer le module User comme méthode d'instance de la classe Image

module User
  def hoge
    puts 'user image'
  end
end

class Image
  include User
end

image = Image.new
image.hoge #=> "user image"

Incorporer dans la classe comme méthode de classe

Vous pouvez utiliser la méthode extend pour importer le traitement du module en tant que méthode de classe de la classe cible.

#Exemple: incorporer le module User comme méthode de classe de la classe Image

module User
  def hoge
    puts 'user image'
  end
end

class Image
  extend User
end

Image.hoge #=> "user image"

Résumé

Recommended Posts

Qu'est-ce qu'un module Ruby?
Qu'est-ce qu'un tableau bidimensionnel Ruby?
Qu'est-ce qu'un constructeur
Qu'est-ce qu'un flux
Qu'est-ce qu'un servlet?
Qu'est-ce qu'une classe wrapper?
Qu'est-ce qu'un type booléen?
Qu'est-ce qu'une virgule flottante?
Qu'est-ce qu'un commentaire significatif?
Qu'est-ce qu'un fichier JAR?
Qu'est-ce qu'une collection Java?
Qu'est-ce qu'une expression lambda?
[Ruby] À quoi sert «!!»?
[Ruby] Qu'est-ce qu'une instance?
Qu'est-ce que Fat⁉ enum?
Qu'est-ce qu'un opérateur de référence sûr (&.) Utilisant Ruby Ampasand?
Qu'est-ce qu'un extrait de code en programmation?
Qu'est-ce qu'un type booléen de colonne?
Qu'est-ce qu'une variable de type référence?
Qu'est-ce qu'une expression lambda (Java)
Qu'est-ce que Cubby
Qu'est-ce qui est nul? ]
Qu'est-ce qu'un fichier .original Spring Boot?
Qu'est-ce que 'java
Qu'est-ce que Keycloak
Qu'est-ce que maven?
[Note technique] Qu'est-ce que "inclure" dans Ruby?
Qu'est-ce que Jackson?
[Pour les débutants en programmation] Qu'est-ce qu'une méthode?
Qu'est-ce que soi
Qu'est-ce que Jenkins
Qu'est-ce que ArgumentMatcher?
Qu'est-ce que IM-Juggling?
Qu'est-ce qu'une classe en langage Java (1 /?)
Qu'est-ce que les paramètres
Qu'est-ce que SLF4J?
Qu'est-ce qu'une classe en langage Java (2 /?)
Qu'est-ce que la façade? ??
Qu'est-ce que Java <>?
Qu'est-ce que Gradle?
Qu'est-ce que POJO
Qu'est-ce que 'java
Qu'est-ce que centOS
Qu'est-ce que RubyGem?
[Rails] Qu'est-ce qu'un point (.) Ou un deux-points (:)?
Qu'est-ce que before_action?
Qu'est-ce que Docker
Qu'est-ce que Byte?
Qu'est-ce que Tomcat
Introduction aux fonctions récursives: qu'est-ce qu'une fonction récursive?
Ruby sum est une histoire sobre et étonnante
À propos du module Ruby's Kernel
Qu'est-ce que l'assemblage Maven?
Qu'est-ce que `docker-compose up`?