Menu
Coddy logo textTech

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ı: 25

Var olmayan bir anahtarı silmeye çalışırsanız, Ruby bir hata fırlatmadan sadece nil döndürür.

challenge icon

Görev

Kolay

Dört satırlık girdi okuyun:

  1. Bir öğrenci adı (string)
  2. Bir başlangıç notu (integer)
  3. Güncellenecek yeni bir not (integer)
  4. key:value formatı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:

  1. "grade" anahtarını yeni not değeriyle güncelleyin
  2. Dördüncü girdideki anahtar ve değeri kullanarak yeni bir anahtar-değer çifti ekleyin (değer string olarak kalmalıdır)
  3. 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ı: 25

Mevcut 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 student
quiz iconKendini test et

Bu 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