Dosyalarla Çalışma
Coddy'nin Ruby Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 1 / 57.
Gerçek programlar birkaç dosyaya bölünür. Bir Ruby dosyası, ardından geçerli dosyaya göreli dosya yolu gelen require_relative ile başka bir dosyayı yükler; genellikle .rb uzantısı kullanılmaz. Bu satırdan sonra yüklenen dosyanın yöntemleri ve sınıfları kullanılabilir:
# greeting.rb
def greeting(name)
"Hello, #{name}!"
end
# main.rb
require_relative 'greeting'
puts greeting("Ada")ruby main.rb komutunu çalıştırmak Hello, Ada! çıktısını verir: main.rb, greeting.rb dosyasını yükler ve ardından bu dosyanın yöntemini çağırır.
Program, çalıştırdığınız dosyada başlar; burada main.rb dosyasında ve Ruby onu yukarıdan aşağıya yürütür. require_relative, diğer dosyayı o noktada ve yalnızca ilk kez çalıştırır: ikinci bir require_relative 'greeting', false döndürür ve hiçbir şey yapmaz. Bir ad, onu tanımlayan dosya yüklendikten sonra kullanılabilir:
# main.rb
# puts greeting("Bo") # NoMethodError: greeting.rb henüz yüklenmedi
require_relative 'greeting' # greeting.rb dosyasını çalıştırır, true döndürür
require_relative 'greeting' # zaten yüklü, false döndürür
puts greeting("Bo")Genel düzen, dosya başına bir sınıftır ve dosyaya sınıfın adı snake_case biçiminde verilir: class Dog, dog.rb dosyasında; class BankAccount ise bank_account.rb dosyasında bulunur. Bu bölümdeki alıştırmalarda main.rb, sağlanan girdi/çıktı kodunu içerir ve her dosya için, yükleme sırasına göre bir require_relative satırıyla başlar: başka bir sınıfın temel aldığı sınıf önce yüklenir.
dog.rb # class Dog ... end
bank_account.rb # class BankAccount ... end
functions.rb # yardımcı metotlar
main.rb # require_relative satırları, ardından girdi/çıktı koduBir dosyanın paylaştıkları, adın türüne bağlıdır. Bir dosyanın en üstünde def ile tanımlanan metotlar, sınıflar ve sabitler, ondan sonra yüklenen her dosyada kullanılabilir. Yerel değişken yalnızca kendi dosyasına aittir:
# settings.rb
limit = 3 # yerel değişken: yalnızca settings.rb onu görebilir
MAX_ITEMS = 3 # sabit: yüklendikten sonra erişilebilir
def limit_text
"at most #{MAX_ITEMS}"
end
# main.rb
require_relative 'settings'
puts limit_text # en fazla 3
puts MAX_ITEMS # 3
# puts limit # NameError: tanımlanmamış yerel değişkenGörev
KolayProgram iki dosyadan oluşur. main.rb, greeting.rb dosyasını yükler, adları okur ve greeting(name) sonucunu yazdırır. greeting.rb içindeki greeting işlevini, Ada adı için Hello, Ada!, ad boş olduğunda ise Hello, friend! döndürecek şekilde tamamla.
Kodunu greeting.rb dosyasına yaz. main.rb, sağlanan giriş/çıkış kodunu içerir ve düzenlenemez.
Kendin dene
require_relative 'greeting'
# Sağlanan giriş/çıkış kodu: olduğu gibi bırakın
input = []
while (line = gets)
input << line.chomp
end
input.each { |name| puts greeting(name) }
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama bölümündeki tüm dersler
1Sınıflar ve Nesneler
Dosyalarla ÇalışmaSınıf TanımlamaÖrnek DeğişkenleriMetotlar ve selfto_s ve inspectÖzet - Kütüphane Kartı7Çok Biçimlilik ve Ördek Tiplemesi
Çok BiçimlilikÖrdek TiplemesiSoyut Metotlarcase ve SınıflarTekrar - Ödeme Yöntemleri2Erişimciler ve self
Okuyucular ve YazıcılarÖzel Setter'larMetotlarda selfKimlik ve EşitlikTekrar - Kişi Listesi5Kalıtım
Alt sınıflarMetotları geçersiz kılmasuper çağrısıis_a? ve üst sınıflarTekrar - Personel Maaşları8Özel Metotlar
Eşitlik ve hashOperatör Metotlarıİndeksleme ve EklemeÖzel KoleksiyonlarTekrar - Kesirler11Proje: Kütüphane Yönetimi
Kitaplar ve ÜyelerKitap Ödünç Alma3Sınıf Metotları ve Değişkenleri
Sınıf MetotlarıSınıf Örnek DeğişkenleriSabitlerFabrika MetotlarıTekrar - Kupon KodlarıKendi başına pratik yap: Online Ruby derleyicisi