Ruby Academy · Ders

Modüller Tanımlama

Ad alanları ve yöntemler

1. ders / 413 adım

Modüller Tanımlama, CoddyKit'te ücretsiz bir Ruby Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Ruby Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Ruby Academy kursu toplamda 4 dersten oluşur.

Ad Alanları ve Metotlar

Modül, metotlar ve sabitler için bir kapsayıcıdır. Bir sınıfın aksine, modülün bir örneğini oluşturamazsınız. Modüller iki amaca hizmet eder: kodu gruplamak (ad alanı oluşturmak) ve davranışı paylaşmak (karışımlar).

module Greeter
  def self.hello
    "Hello from the module"
  end
end
puts Greeter.hello

Modül Metotları

Bir metodu self. ile tanımlayarak onu yardımcı işlev gibi doğrudan modül üzerinde çağırabilirsiniz. Bunlara genellikle modül işlevleri denir.

module MathTools
  def self.square(x)
    x * x
  end
end
puts MathTools.square(7)

Modül Sabitleri

Modüller sabitleri de barındırır. Sabitlere kapsam işleci olan :: ile erişin.

module Physics
  GRAVITY = 9.81
end
puts Physics::GRAVITY

Sınıflar İçin Ad Alanı Oluşturma

Ad çakışmalarını önlemek için sınıfları bir modülün içine yerleştirin. Tam ad, :: kullanır.

module Store
  class Item
    def initialize(name)
      @name = name
    end
    def to_s
      @name
    end
  end
end
puts Store::Item.new("Book")

Ad Alanları Neden Önemlidir

İki kitaplık da bir Logger tanımlayabilir. Ad alanları bunları ayrı tutar: Audio::Logger ve Network::Logger hiçbir zaman çakışmaz.

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

Modül İşlevi

module_function, sonraki metotların hem modül üzerinde hem de karışıma dâhil edildiklerinde özel örnek metotları olarak çağrılabilmesini sağlar. Böylece self. ifadesini tekrarlamak gerekmez.

module Calc
  module_function
  def add(a, b)
    a + b
  end
end
puts Calc.add(2, 3)

İlişkili Sabitleri Gruplama

Modüller, ilişkili yapılandırma değerlerini tek ve anlaşılır bir ad altında düzenlemek için çok uygundur.

module Color
  RED = "#FF0000"
  GREEN = "#00FF00"
  BLUE = "#0000FF"
end
puts Color::GREEN

İç İçe Modüller

Daha kapsamlı bir düzenleme için modüller başka modüllerin içine yerleştirilebilir.

module App
  module Config
    VERSION = "1.0"
  end
end
puts App::Config::VERSION

Modül İçeriğini Listeleme

Yansıma metotları, bir modülün sabitlerini ve metotlarını çalışma zamanında incelemenizi sağlar.

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

Modüller Örneklenemez

Adlandırılmış bir modül üzerinde Module.new kullanmayı denemek başarısız olur; çünkü modüllerin örnek oluşturmak için bir kurucusu yoktur. Modül, nesneler için bir şablon değil, bir ad alanı ve davranış taşıyıcısıdır.

module Tools
end
begin
  Tools.new
rescue NoMethodError => e
  puts "Cannot instantiate: #{e.message}"
end

Hepsini Bir Araya Getirme

Modüller kodu düzenler ve paylaşır:

  • Çağrılabilir modül işlevleri için self.method kullanın.
  • :: ile erişilen sabitleri barındırın.
  • Çakışmaları önlemek için sınıflara ad alanı verin.
  • Bir modülü örnekleyemezsiniz.
module Geometry
  PI = 3.14159
  def self.circle_area(r)
    PI * r * r
  end
end
puts Geometry.circle_area(2)

Hızlı Kontrol

Modüllerle ilgili anlayışınızı test edin.

Özet

Modül tanımlamayı öğrendiniz:

  • Modüller metotları ve sabitleri gruplar.
  • self.method, çağrılabilir modül işlevleri tanımlar.
  • ::, sabitlere ve iç içe sınıflara erişir.
  • Ad alanları, ad çakışmalarını önler.
module Util
  def self.shout(s)
    s.upcase + "!"
  end
end
puts Util.shout("ruby")
Başlamak ücretsiz

Yapay zeka eğitmeniyle Ruby öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
29
Dersler
109

Sıkça Sorulan Sorular

“Modüller Tanımlama” dersi ücretsiz mi?

Evet — “Modüller Tanımlama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Ruby Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Ruby Academy kursu toplamda 4 dersten oluşur.

“Modüller Tanımlama” dersinde ne öğreneceğim?

Ad alanları ve yöntemler Ruby Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Ruby Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Ruby Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Modüller Tanımlama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Ruby Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Ruby Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Modüller Tanımlama
  2. include ve extend
  3. Comparable ve Enumerable
  4. prepend ve Yöntem Çözümleme
← Ruby Academy Sayfasına Dön