Öğrenci Ekle
Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 49 / 56.
Paylaşılan student_records hash'ine yeni bir öğrenci kaydeden bir add_student metodu tanımlayın.
Tek koşul kopya kayıtları reddetmektir; bir öğrenci zaten mevcutsa, bunu bildirin ve üzerine yazmadan geri dönün.
Görev
KolayDosyanızın en üstünde student_records = {} ifadesini tutun. Ardından şunları yapan bir add_student(name, age, courses) metodu tanımlayın:
- Eğer
namezatenstudent_recordsiçinde bir anahtar ise,Student '<name>' already exists.yazdırır ve geri döner. - Aksi takdirde
{ age: age, grades: [], courses: courses }verisininamealtına kaydeder veStudent '<name>' added.yazdırır.
Dosyanızın en altındaki test bloğunu şununla değiştirin:
add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_student("Alice", 21, ["Art"])
puts student_records.inspectBeklenen çıktı şudur:
Student 'Alice' added.
Student 'Bob' added.
Student 'Alice' already exists.
{"Alice"=>{:age=>20, :grades=>[], :courses=>["Math", "Physics"]}, "Bob"=>{:age=>22, :grades=>[], :courses=>["Biology", "Chemistry"]}}Metotlar kapsayıcı betikteki yerel değişkenleri göremediği için, metodun okuyabilmesi ve güncelleyebilmesi için student_records değişkenini $student_records (bir global) olarak bildirin. Metot içinde de bu ismi kullanın.
Kendin dene
$student_records = {}
# YAPILACAK: def add_student(name, age, courses), kopyalara karşı koruma sağla,
# { age:, grades: [], courses: } şeklinde sakla, eklendi/zaten mevcut yazdır
add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_student("Alice", 21, ["Art"])
puts $student_records.inspect
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1Dizeler Detaylı İnceleme
Dize Metotlarına Genel BakışDize EnterpolasyonuDizeler Üzerinde YinelemeBölme ve BirleştirmeTekrar - Dize Dokuyucu4Bloklar, Proc'lar ve Lambda'lar
Blok Nedir?do..end ve Süslü Parantezleryield Anahtar SözcüğüBlok ParametreleriProc'lar ve Lambda'larÖzet - Özel Yineleyici7Hash'ler 2. Bölüm
Varsayılanlarla Hash.newHash'ler Üzerinde Yinelemeİç İçe Hash'lerBirleştirme ve DönüştürmeTekrar - Frekans Sayacı10Proje - Öğrenci Kayıtları
Projeye Genel BakışÖğrenci Ekle5Enumerable Gücü
Seçme ve ReddetmeMap ZincirlemeReduce / Injectcount, all?, any?, none?group_by ve partitionsort_by, min_by, max_byTekrar - Veri HattıKendi başına pratik yap: Online Ruby derleyicisi