0Pricing
Ruby Academy · Pelajaran

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.hello

Metode 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::GRAVITY

Memberi 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.name

Fungsi 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::GREEN

Modul 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::VERSION

Mencantumkan Isi Modul

Metode refleksi memungkinkan Anda memeriksa konstanta dan metode suatu modul saat program berjalan.

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

Modul 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}"
end

Menyatukannya

Modul mengatur dan berbagi kode:

  • Gunakan self.method untuk 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.method mendefinisikan 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

  1. Mendefinisikan Modul
  2. include dan extend
  3. Comparable dan Enumerable
  4. prepend dan Resolusi Method
← Kembali ke Ruby Academy