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 ayrılır. Bir Ruby dosyası, ardından geçerli dosyaya göre dosyanın yolunu (genellikle .rb uzantısı olmadan) belirterek başka bir dosyayı require_relative ile yükler. Bu satırdan sonra, yüklenen dosyanın metotları 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 çalıştırıldığında Hello, Ada! yazdırılır: main.rb, greeting.rb dosyasını yükler ve ardından onun metodunu çağırır.
Program, çalıştırdığınız dosyada (burada main.rb) başlar ve Ruby onu yukarıdan aşağıya doğru 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üklenmeden önce kullanılamaz:
# main.rb
# puts greeting("Bo") # NoMethodError: greeting.rb henüz yüklenmedi
require_relative 'greeting' # greeting.rb'yi çalıştırır, true döndürür
require_relative 'greeting' # zaten yüklenmiş, false döndürür
puts greeting("Bo")Yaygın düzen, dosya adının sınıfın adını snake_case biçiminde taşıdığı, dosya başına bir sınıf olacak şekildedir: 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 yükleme sırasına göre her dosya için bir require_relative satırıyla başlar: başka bir sınıfın üzerine kurulan 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 neyi paylaşacağı, adın türüne bağlıdır. Bir dosyanın en üstünde def ile tanımlanan yöntemler, sınıflar ve sabitler, dosyadan sonra yüklenen her dosya tarafından kullanılabilir. Yerel bir değişken yalnızca kendi dosyasına aittir:
# settings.rb
limit = 3 # yerel değişken: yalnızca settings.rb onu görür
MAX_ITEMS = 3 # sabit: yüklendikten sonra görünür
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ımsız yerel değişkenGörev
KolayProgramın iki dosyası vardır. main.rb, greeting.rb dosyasını yükler, adları okur ve greeting(name) sonucunu yazdırır. Ada adı için Hello, Ada! döndürmesi veya ad boş olduğunda Hello, friend! döndürmesi için greeting işlevini greeting.rb içinde tamamla.
Kodun greeting.rb dosyasına yazılmalıdır. main.rb, sağlanan girdi/çıktı kodunu içerir ve düzenlenemez.
Kendin dene
require_relative 'greeting'
# Sağlanan girdi/çıktı 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