Modules definiëren
Namespaces en methoden
Modules definiëren is een gratis Ruby Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Ruby Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Ruby Academy bevat in totaal 4 lessen.
Naamruimten en methoden
Een module is een houder voor methoden en constanten. In tegenstelling tot een klasse kun je geen instantie van een module maken. Modules hebben twee functies: code groeperen (naamruimten) en gedrag delen (mixins).
module Greeter
def self.hello
"Hello from the module"
end
end
puts Greeter.helloMethoden van modules
Definieer een methode met self. om die rechtstreeks op de module aan te roepen, zoals een hulpfunctie. Deze worden vaak modulefuncties genoemd.
module MathTools
def self.square(x)
x * x
end
end
puts MathTools.square(7)Constanten van modules
Modules bevatten ook constanten. Je benadert ze met de bereikoperator ::.
module Physics
GRAVITY = 9.81
end
puts Physics::GRAVITYKlassen van een naamruimte voorzien
Wikkel klassen in een module om naamconflicten te voorkomen. De volledige naam gebruikt ::.
module Store
class Item
def initialize(name)
@name = name
end
def to_s
@name
end
end
end
puts Store::Item.new("Book")Waarom naamruimten belangrijk zijn
Twee bibliotheken kunnen allebei een Logger definiëren. Naamruimten houden ze uit elkaar: Audio::Logger en Network::Logger botsen nooit.
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 maakt de daaropvolgende methoden zowel op de module als als privé-instantmethoden aanroepbaar wanneer ze worden opgenomen. Zo hoef je self. niet steeds te herhalen.
module Calc
module_function
def add(a, b)
a + b
end
end
puts Calc.add(2, 3)Gerelateerde constanten groeperen
Modules zijn ideaal om gerelateerde configuratiewaarden onder één duidelijke naam te ordenen.
module Color
RED = "#FF0000"
GREEN = "#00FF00"
BLUE = "#0000FF"
end
puts Color::GREENGeneste modules
Modules kunnen in andere modules worden genest voor een diepere ordening.
module App
module Config
VERSION = "1.0"
end
end
puts App::Config::VERSIONDe inhoud van een module weergeven
Met reflectiemethoden kun je de constanten en methoden van een module tijdens runtime bekijken.
module Settings
WIDTH = 80
HEIGHT = 24
end
p Settings.constantsModules kunnen niet worden geïnstantieerd
Een poging om met Module.new een benoemde module te maken mislukt, omdat een module geen constructor voor instanties heeft. Een module is een naamruimte en houder voor gedrag, geen sjabloon voor objecten.
module Tools
end
begin
Tools.new
rescue NoMethodError => e
puts "Cannot instantiate: #{e.message}"
endAlles samenbrengen
Modules ordenen en delen code:
- Gebruik
self.methodvoor aanroepbare modulefuncties. - Bewaar constanten die je met
::benadert. - Voorzie klassen van een naamruimte om conflicten te voorkomen.
- Je kunt een module niet instantiëren.
module Geometry
PI = 3.14159
def self.circle_area(r)
PI * r * r
end
end
puts Geometry.circle_area(2)Snelle controle
Controleer of je modules begrijpt.
Samenvatting
Je hebt geleerd modules te definiëren:
- Modules groeperen methoden en constanten.
self.methoddefinieert aanroepbare modulefuncties.::benadert constanten en geneste klassen.- Naamruimten voorkomen naamconflicten.
module Util
def self.shout(s)
s.upcase + "!"
end
end
puts Util.shout("ruby")Leer Ruby met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 29
- Lessen
- 109
Veelgestelde vragen
Is de les “Modules definiëren” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Ruby Academy, waaronder “Modules definiëren”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Ruby Academy bevat in totaal 4 lessen.
Wat leer ik in “Modules definiëren”?
Namespaces en methoden Je oefent met Ruby Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Ruby Academy te beginnen?
Ervaring vooraf is niet nodig. Ruby Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Modules definiëren”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Ruby Academy?
Ja. Elke les over Ruby Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Modules definiëren
- include en extend
- Comparable en Enumerable
- prepend en methoderesolutie