Menu
CoddyTech

Hash'leri Güncelleme

Coddy'nin Ruby Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 75 / 88.

Hash'ler oluşturulduktan sonra sabit kalmaz. Programınız çalışırken yeni anahtar-değer çiftleri ekleyebilir, mevcut değerleri güncelleyebilir ve girdileri kaldırabilirsiniz.

Yeni bir çift eklemek veya mevcut bir değeri güncellemek için köşeli parantezleri kullanarak anahtara değer atayı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"}

Anahtar varsa, değer değiştirilir. Yoksa, hash’e yeni bir çift eklenir.

Bir anahtar-değer çiftini kaldırmak için, kaldırmak istediğiniz anahtarla birlikte delete yöntemini kullanın:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

person.delete("city")

puts person  # Çıktı: {"name"=>"Alice", "age"=>25}

delete yöntemi, kaldırılan değeri döndürür; bu değeri kullanmanız gerekirse işinize yarayabilir:

person = {"name" => "Alice", "age" => 25}

removed_age = person.delete("age")

puts removed_age  # Çıktı: 25

Var olmayan bir anahtarı silmeye çalışırsan Ruby, hata vermeden yalnızca nil döndürür.

challenge icon

Görev

Kolay

Dört satır girdi oku:

  1. Bir öğrenci adı (dize)
  2. Başlangıç notu (tamsayı)
  3. Güncellenecek yeni not (tamsayı)
  4. key:value biçiminde yeni bir anahtar-değer çifti (ör. subject:Math)

Aşağıdaki başlangıç anahtar-değer çiftleriyle student adlı bir hash oluştur:

  • Öğrenci adına eşlenen "name"
  • Başlangıç notuna (tamsayı olarak) eşlenen "grade"

Ardından şu değişiklikleri yap:

  1. "grade" anahtarını yeni not değeriyle güncelle
  2. Dördüncü girdideki anahtarı ve değeri kullanarak yeni bir anahtar-değer çifti ekle (değer dize olarak kalmalı)
  3. Hash'ten "name" anahtarını sil ve kaldırılan değeri sakla

Kaldırılan adı ilk satıra, ardından son hash'i ikinci satıra yazdır.

Ö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"}

Kendin dene

# Girdiyi oku
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp

# TODO: Kodunuzu aşağıya yazın
# 1. "name" ve "grade" anahtarlarını içeren 'student' adlı bir hash oluşturun
# 2. "grade" anahtarını yeni not değeriyle güncelleyin
# 3. key_value_pair değerini ayrıştırıp hash'e ekleyin
# 4. "name" anahtarını silin ve kaldırılan değeri saklayın

# Kaldırılan adı çıktıya yazdırın
puts removed_name
# Son hash'i çıktıya yazdırın
puts student
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online Ruby derleyicisi