Mentakrifkan Modul
Ruang nama dan kaedah
Mentakrifkan Modul ialah pelajaran Ruby Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Ruby Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Ruby Academy merangkumi sejumlah 4 pelajaran.
Ruang Nama dan Kaedah
Modul ialah bekas untuk kaedah dan pemalar. Tidak seperti kelas, anda tidak boleh mencipta tika modul. Modul mempunyai dua peranan: mengumpulkan kod (ruang nama) dan berkongsi tingkah laku (campuran).
module Greeter
def self.hello
"Hello from the module"
end
end
puts Greeter.helloKaedah Modul
Takrifkan kaedah dengan self. untuk memanggilnya secara terus pada modul, seperti fungsi utiliti. Kaedah ini sering dipanggil fungsi modul.
module MathTools
def self.square(x)
x * x
end
end
puts MathTools.square(7)Pemalar Modul
Modul juga menyimpan pemalar. Akses pemalar tersebut dengan operator skop ::.
module Physics
GRAVITY = 9.81
end
puts Physics::GRAVITYMenamakan Kelas dalam Ruang Nama
Balut kelas dalam modul untuk mengelakkan pertembungan nama. Nama penuh menggunakan ::.
module Store
class Item
def initialize(name)
@name = name
end
def to_s
@name
end
end
end
puts Store::Item.new("Book")Kepentingan Ruang Nama
Dua pustaka mungkin mentakrifkan Logger yang sama. Ruang nama memisahkannya: Audio::Logger dan Network::Logger tidak akan bertembung.
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 menjadikan kaedah berikut boleh dipanggil pada modul dan sebagai kaedah tika peribadi apabila dicampurkan. Fungsi ini mengelakkan pengulangan self..
module Calc
module_function
def add(a, b)
a + b
end
end
puts Calc.add(2, 3)Mengumpulkan Pemalar Berkaitan
Modul sangat sesuai untuk menyusun nilai konfigurasi yang berkaitan di bawah satu nama yang jelas.
module Color
RED = "#FF0000"
GREEN = "#00FF00"
BLUE = "#0000FF"
end
puts Color::GREENModul Bersarang
Modul boleh disarangkan di dalam modul lain untuk penyusunan yang lebih terperinci.
module App
module Config
VERSION = "1.0"
end
end
puts App::Config::VERSIONMenyenaraikan Kandungan Modul
Kaedah refleksi membolehkan anda memeriksa pemalar dan kaedah modul semasa program berjalan.
module Settings
WIDTH = 80
HEIGHT = 24
end
p Settings.constantsModul Tidak Boleh Dijadikan Tika
Percubaan menggunakan Module.new pada gaya modul bernama akan gagal kerana modul tidak mempunyai pembina untuk tika. Modul ialah ruang nama dan pemegang tingkah laku, bukan pelan binaan untuk objek.
module Tools
end
begin
Tools.new
rescue NoMethodError => e
puts "Cannot instantiate: #{e.message}"
endMenggabungkan Semuanya
Modul menyusun dan berkongsi kod:
- Gunakan
self.methoduntuk fungsi modul yang boleh dipanggil. - Simpan pemalar yang diakses dengan
::. - Namakan kelas dalam ruang nama untuk mengelakkan pertembungan.
- Anda tidak boleh menjadikan modul sebagai tika.
module Geometry
PI = 3.14159
def self.circle_area(r)
PI * r * r
end
end
puts Geometry.circle_area(2)Semakan Ringkas
Uji pemahaman anda tentang modul.
Imbas Kembali
Anda telah mempelajari cara mentakrifkan modul:
- Modul mengumpulkan kaedah dan pemalar.
self.methodmentakrifkan fungsi modul yang boleh dipanggil.::mengakses pemalar dan kelas bersarang.- Ruang nama menghalang pertembungan nama.
module Util
def self.shout(s)
s.upcase + "!"
end
end
puts Util.shout("ruby")Pelajari Ruby dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 29
- Pelajaran
- 109
Soalan Lazim
Adakah pelajaran “Mentakrifkan Modul” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Ruby Academy, termasuk “Mentakrifkan Modul”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Ruby Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Mentakrifkan Modul”?
Ruang nama dan kaedah Anda berlatih Ruby Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Ruby Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Ruby Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Mentakrifkan Modul” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Ruby Academy ini?
Ya. Setiap pelajaran Ruby Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mentakrifkan Modul
- include dan extend
- Comparable dan Enumerable
- prepend dan Resolusi Kaedah