Hash'leri Güncelleme
Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası — ders 75 / 88.
Hash'ler oluşturulduktan sonra statik değildir. Programınız çalışırken yeni anahtar-değer çiftleri ekleyebilir, mevcut değerleri güncelleyebilir ve girişleri kaldırabilirsiniz.
Yeni bir çift eklemek veya mevcut bir değeri güncellemek için, köşeli parantez kullanarak anahtara atama yapın:
person = {"name" => "Alice", "age" => 25}
person["city"] = "Paris" # Yeni bir anahtar-değer çifti ekler
person["age"] = 26 # Mevcut değeri günceller
puts person # Çıktı: {"name"=>"Alice", "age"=>26, "city"=>"Paris"}Eğer anahtar mevcutsa, değer değiştirilir. Mevcut değilse, hash'e yeni bir çift eklenir.
Bir anahtar-değer çiftini kaldırmak için, kaldırmak istediğiniz anahtarla birlikte delete metodunu kullanın:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
person.delete("city")
puts person # Çıktı: {"name"=>"Alice", "age"=>25}delete metodu, silinen değeri döndürür; bu, onu kullanmanız gerekiyorsa yararlı olabilir:
person = {"name" => "Alice", "age" => 25}
removed_age = person.delete("age")
puts removed_age # Çıktı: 25Var olmayan bir anahtarı silmeye çalışırsanız, Ruby bir hata fırlatmadan sadece nil döndürür.
Görev
KolayDört satırlık girdi okuyun:
- Bir öğrenci adı (string)
- Bir başlangıç notu (integer)
- Güncellenecek yeni bir not (integer)
key:valueformatında yeni bir anahtar-değer çifti (örneğin,subject:Math)
Aşağıdaki başlangıç anahtar-değer çiftlerine sahip student adında bir hash oluşturun:
- Öğrenci adına eşlenmiş
"name" - Başlangıç notuna (integer olarak) eşlenmiş
"grade"
Ardından şu değişiklikleri gerçekleştirin:
"grade"anahtarını yeni not değeriyle güncelleyin- Dördüncü girdideki anahtar ve değeri kullanarak yeni bir anahtar-değer çifti ekleyin (değer string olarak kalmalıdır)
- Hash'ten
"name"anahtarını silin ve kaldırılan değeri saklayın
İlk satıra kaldırılan adı yazdırın, ardından ikinci satıra hash'in son halini yazdırın.
Örneğin, girdiler Alice, 85, 92 ve subject:Math ise, çıktı şöyle olmalıdır:
Alice
{"grade"=>92, "subject"=>"Math"}Girdiler Bob, 70, 75 ve status:passing ise, çıktı şöyle olmalıdır:
Bob
{"grade"=>75, "status"=>"passing"}Girdiler Charlie, 100, 95 ve note:excellent ise, çıktı şöyle olmalıdır:
Charlie
{"grade"=>95, "note"=>"excellent"}Kopya kağıdı
Bir hash'e yeni bir anahtar-değer çifti eklemek veya mevcut bir değeri güncellemek için köşeli parantez kullanın:
person = {"name" => "Alice", "age" => 25}
person["city"] = "Paris" # Yeni bir anahtar-değer çifti ekler
person["age"] = 26 # Mevcut değeri günceller
puts person # Çıktı: {"name"=>"Alice", "age"=>26, "city"=>"Paris"}Eğer anahtar mevcutsa, değer değiştirilir. Eğer mevcut değilse, yeni bir çift eklenir.
Bir anahtar-değer çiftini kaldırmak için delete metodunu kullanın:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
person.delete("city")
puts person # Çıktı: {"name"=>"Alice", "age"=>25}delete metodu kaldırılan değeri döndürür:
removed_age = person.delete("age")
puts removed_age # Çıktı: 25Mevcut olmayan bir anahtarı silmeye çalışırsanız, Ruby bir hata vermeden nil döndürür.
Kendin dene
# Girdiyi oku
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp
# YAPILACAK: Kodunuzu aşağıya yazın
# 1. "name" ve "grade" anahtarlarına sahip 'student' adında bir hash oluşturun
# 2. "grade" anahtarını yeni not değeriyle güncelleyin
# 3. key_value_pair'ı ayrıştırın ve hash'e ekleyin
# 4. "name" anahtarını silin ve kaldırılan değeri saklayın
# Kaldırılan ismi yazdırın
puts removed_name
# Nihai hash'i yazdırın
puts studentBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 47Hesap Paylaşımı Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcı Girdisi Alma13İleri Seviye Diziler
Aralıklar ile Dizi Dilimlemeİndeksler ile Dizi DilimlemeDizi OperatörleriInclude? Metodu2Değişkenler ve Veri Tipleri
Sayılar ve DeğişkenlerString Veri TipiBoolean Veri TipiSymbol Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıÖzet - Değişken Oluşturma8Döngüler
Aralıklar ile For DöngüsüWhile DöngüsüBreakNextÖzet - FaktöriyelTimes DöngüsüUntil Döngüsüİç İçe DöngülerÖzet - Dinamik Girdi11Diziler
Dizi OluşturmaDizi Elemanlarına ErişmeDizileri DeğiştirmeDizi MetotlarıÖzet - Ürün DizisiÖzet - Ters Çevrilmiş DiziDizi Kısayolları14Hash'ler
Hash OluşturmaHash Elemanlarına ErişimHash'leri GüncellemeHash MetotlarıÖzet - Ürün Hash'iHash Anahtarı Olarak Semboller3Operatörler Bölüm 1
Aritmetik OperatörlerModulo OperatörüAritmetik KısayollarÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel IO
puts ile Çıktı Almaprint ve p ile Çıktı AlmaDeğişkenlerle Çıktı Almagets ile Girdi AlmaChomp MetoduTip DönüşümüÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Metotlar
Metot TanımlamaMetot ParametreleriDönüş DeğerleriÖzet - Sigma MetoduÖzet - Doğrulama MetoduVarsayılan Parametre Değerleri12Koleksiyonlar Üzerinde Yineleme
Each Yineleyicisiİndeks ile EachStringler Üzerinde YinelemeMap ve Collect