0Pricing
Ruby Academy · Lektion

Module definieren

Namensräume und Methoden

Module definieren ist eine kostenlose Ruby Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ruby Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Namensräume und Methoden

Ein Modul ist ein Container für Methoden und Konstanten. Anders als bei einer Klasse können Sie von einem Modul keine Instanz erstellen. Module erfüllen zwei Aufgaben: Sie gruppieren Code (Namensräume) und teilen Verhalten (Mixins).

module Greeter
  def self.hello
    "Hello from the module"
  end
end
puts Greeter.hello

Modulmethoden

Definieren Sie eine Methode mit self., um sie direkt auf dem Modul wie eine Hilfsfunktion aufzurufen. Solche Methoden werden oft als Modul-Funktionen bezeichnet.

module MathTools
  def self.square(x)
    x * x
  end
end
puts MathTools.square(7)

Modulkonstanten

Module können auch Konstanten enthalten. Greifen Sie mit dem Scope-Operator :: darauf zu.

module Physics
  GRAVITY = 9.81
end
puts Physics::GRAVITY

Klassen in Namensräumen

Schließen Sie Klassen in ein Modul ein, um Namenskollisionen zu vermeiden. Der vollständige Name verwendet ::.

module Store
  class Item
    def initialize(name)
      @name = name
    end
    def to_s
      @name
    end
  end
end
puts Store::Item.new("Book")

Warum Namensräume wichtig sind

Zwei Bibliotheken könnten beide einen Logger definieren. Namensräume halten sie getrennt: Audio::Logger und Network::Logger kollidieren niemals.

module Audio
  class Logger
    def name; "audio logger"; end
  end
end
module Network
  class Logger
    def name; "network logger"; end
  end
end
puts Audio::Logger.new.name
puts Network::Logger.new.name

module_function

module_function macht die folgenden Methoden sowohl auf dem Modul als auch als private Instanzmethoden beim Einmischen aufrufbar. Dadurch müssen Sie self. nicht wiederholen.

module Calc
  module_function
  def add(a, b)
    a + b
  end
end
puts Calc.add(2, 3)

Zusammengehörige Konstanten gruppieren

Module eignen sich hervorragend, um zusammengehörige Konfigurationswerte unter einem eindeutigen Namen zu organisieren.

module Color
  RED = "#FF0000"
  GREEN = "#00FF00"
  BLUE = "#0000FF"
end
puts Color::GREEN

Verschachtelte Module

Module können in andere Module verschachtelt werden, um eine noch detailliertere Organisation zu ermöglichen.

module App
  module Config
    VERSION = "1.0"
  end
end
puts App::Config::VERSION

Inhalte eines Moduls auflisten

Mit Reflexionsmethoden können Sie die Konstanten und Methoden eines Moduls zur Laufzeit untersuchen.

module Settings
  WIDTH = 80
  HEIGHT = 24
end
p Settings.constants

Module können nicht instanziiert werden

Der Versuch, Module.new bei einem benannten Modul zu verwenden, schlägt fehl, da ein Modul keinen Konstruktor für Instanzen besitzt. Es ist ein Namensraum und ein Träger für Verhalten, aber kein Bauplan für Objekte.

module Tools
end
begin
  Tools.new
rescue NoMethodError => e
  puts "Cannot instantiate: #{e.message}"
end

Alles zusammenführen

Module organisieren und teilen Code:

  • Verwenden Sie self.method für aufrufbare Modul-Funktionen.
  • Sie enthalten Konstanten, auf die mit :: zugegriffen wird.
  • Verwenden Sie Namensräume für Klassen, um Kollisionen zu verhindern.
  • Sie können ein Modul nicht instanziieren.
module Geometry
  PI = 3.14159
  def self.circle_area(r)
    PI * r * r
  end
end
puts Geometry.circle_area(2)

Kurzer Test

Testen Sie Ihr Verständnis von Modulen.

Zusammenfassung

Sie haben gelernt, Module zu definieren:

  • Module gruppieren Methoden und Konstanten.
  • self.method definiert aufrufbare Modul-Funktionen.
  • :: greift auf Konstanten und verschachtelte Klassen zu.
  • Namensräume verhindern Namenskollisionen.
module Util
  def self.shout(s)
    s.upcase + "!"
  end
end
puts Util.shout("ruby")

Häufig gestellte Fragen

Ist die Lektion „Module definieren“ kostenlos?

Ja — der vollständige Text von „Module definieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ruby Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Module definieren“?

Namensräume und Methoden Du übst Ruby Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Ruby Academy zu starten?

Keine Vorkenntnisse erforderlich. Ruby Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Module definieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Ruby Academy-Lektion Code schreiben und ausführen?

Ja. Jede Ruby Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Module definieren
  2. include und extend
  3. Comparable und Enumerable
  4. prepend und Methodenauflösung
← Zurück zu Ruby Academy