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.helloModulmethoden
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::GRAVITYKlassen 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.namemodule_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::GREENVerschachtelte 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::VERSIONInhalte 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.constantsModule 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}"
endAlles zusammenführen
Module organisieren und teilen Code:
- Verwenden Sie
self.methodfü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.methoddefiniert 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.