Mendefinisikan Modul
Namespace dan method.
Mendefinisikan Modul adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Ruby Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Ruby Academy mencakup 4 pelajaran total.
Ruang Nama dan Metode
Modul adalah wadah untuk metode dan konstanta. Berbeda dari kelas, Anda tidak dapat membuat instans modul. Modul memiliki dua peran: mengelompokkan kode (memberi ruang nama) dan berbagi perilaku (campuran).
module Greeter
def self.hello
"Hello from the module"
end
end
puts Greeter.helloMetode Modul
Definisikan metode dengan self. agar metode tersebut dapat dipanggil langsung pada modul, seperti fungsi utilitas. Metode ini sering disebut fungsi modul.
module MathTools
def self.square(x)
x * x
end
end
puts MathTools.square(7)Konstanta Modul
Modul juga menyimpan konstanta. Akses konstanta tersebut dengan operator lingkup ::.
module Physics
GRAVITY = 9.81
end
puts Physics::GRAVITYMemberi Ruang Nama pada Kelas
Masukkan kelas ke dalam modul untuk menghindari benturan nama. Nama lengkapnya menggunakan ::.
module Store
class Item
def initialize(name)
@name = name
end
def to_s
@name
end
end
end
puts Store::Item.new("Book")Mengapa Ruang Nama Penting
Dua pustaka mungkin sama-sama mendefinisikan Logger. Pemberian ruang nama menjaga keduanya tetap terpisah: Audio::Logger dan Network::Logger tidak akan pernah berbenturan.
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.nameFungsi Modul
module_function membuat metode berikutnya dapat dipanggil pada modul maupun sebagai metode instans privat saat dicampurkan. Dengan begitu, Anda tidak perlu mengulangi self..
module Calc
module_function
def add(a, b)
a + b
end
end
puts Calc.add(2, 3)Mengelompokkan Konstanta Terkait
Modul sangat cocok untuk mengatur nilai konfigurasi yang saling terkait di bawah satu nama yang jelas.
module Color
RED = "#FF0000"
GREEN = "#00FF00"
BLUE = "#0000FF"
end
puts Color::GREENModul Bersarang
Modul dapat bersarang di dalam modul lain untuk pengaturan yang lebih mendalam.
module App
module Config
VERSION = "1.0"
end
end
puts App::Config::VERSIONMencantumkan Isi Modul
Metode refleksi memungkinkan Anda memeriksa konstanta dan metode suatu modul saat program berjalan.
module Settings
WIDTH = 80
HEIGHT = 24
end
p Settings.constantsModul Tidak Dapat Dibuat sebagai Instans
Mencoba Module.new pada gaya modul bernama akan gagal karena modul tidak memiliki konstruktor untuk instans. Modul adalah ruang nama dan wadah perilaku, bukan cetak biru untuk objek.
module Tools
end
begin
Tools.new
rescue NoMethodError => e
puts "Cannot instantiate: #{e.message}"
endMenyatukannya
Modul mengatur dan berbagi kode:
- Gunakan
self.methoduntuk fungsi modul yang dapat dipanggil. - Simpan konstanta yang diakses dengan
::. - Beri ruang nama pada kelas untuk mencegah benturan.
- Anda tidak dapat membuat instans modul.
module Geometry
PI = 3.14159
def self.circle_area(r)
PI * r * r
end
end
puts Geometry.circle_area(2)Uji Cepat
Uji pemahaman Anda tentang modul.
Ringkasan
Anda telah mempelajari cara mendefinisikan modul:
- Modul mengelompokkan metode dan konstanta.
self.methodmendefinisikan fungsi modul yang dapat dipanggil.::mengakses konstanta dan kelas bersarang.- Pemberian ruang nama mencegah benturan nama.
module Util
def self.shout(s)
s.upcase + "!"
end
end
puts Util.shout("ruby")Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mendefinisikan Modul” gratis?
Ya — teks lengkap “Mendefinisikan Modul” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Ruby Academy, upgrade ke CoddyKit PRO. Kursus Ruby Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mendefinisikan Modul”?
Namespace dan method. Kamu berlatih Ruby Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Ruby Academy?
Tidak diperlukan pengalaman sebelumnya. Ruby Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Mendefinisikan Modul” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Ruby Academy ini?
Ya. Setiap pelajaran Ruby Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mendefinisikan Modul
- include dan extend
- Comparable dan Enumerable
- prepend dan Resolusi Method