Menu
Coddy logo textTech

Hash Elemanlarına Erişim

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

Artık hash'leri nasıl oluşturacağınızı bildiğinize göre, içlerinde saklanan değerleri erişip almanız gerekir. Sayısal indeksler kullandığınız dizilerin aksine, hash'ler değerlerine erişmek için key'ler kullanır.

Karşılık gelen değerini almak için anahtarı köşeli parantezler içine yerleştirin:

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

puts person["name"]  # Çıktı: Alice
puts person["age"]   # Çıktı: 25

Anahtar, hash'i oluştururken kullandığınız anahtarla birebir eşleşmelidir. Mevcut olmayan bir anahtara erişmeye çalışırsanız Ruby nil döndürür:

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

puts person["country"]  # Çıktı: (hiçbir şey - nil)

Anahtar bulunamadığında varsayılan bir değer sağlamanıza olanak tanıyan fetch metodunu da kullanabilirsiniz:

person = {"name" => "Alice"}

puts person.fetch("name", "Unknown")     # Çıktı: Alice
puts person.fetch("country", "Unknown")  # Çıktı: Unknown

Bu, nil almak yerine eksik anahtarları zarif bir şekilde ele almak istediğinizde kullanışlıdır.

challenge icon

Görev

Kolay

Dört satırlık girdiyi okuyun:

  1. Ürün adı (string)
  2. Fiyat (float)
  3. Stoktaki miktar (integer)
  4. Aranacak anahtar (string)

Aşağıdaki anahtar-değer çiftlerine sahip product adında bir hash oluşturun:

  • Ürün adı ile eşleşen "name"
  • Fiyat ile eşleşen "price" (float olarak)
  • Miktar ile eşleşen "stock" (integer olarak)

Ardından, dördüncü girdide sağlanan anahtarın değerini almak için fetch metodunu kullanın. Eğer anahtar mevcut değilse, varsayılan değer olarak "<code>Not found" kullanın. Sonucu yazdırın.

Örneğin, girdiler Laptop, 999.99, 15 ve price ise çıktı şu şekilde olmalıdır:

999.99

Girdiler Keyboard, 49.99, 100 ve name ise çıktı şu şekilde olmalıdır:

Keyboard

Girdiler Mouse, 29.99, 50 ve color ise çıktı şu şekilde olmalıdır:

Not found

Girdiler Monitor, 299.0, 8 ve stock ise çıktı şu şekilde olmalıdır:

8

Kendin dene

# Girdiyi oku
product_name = gets.chomp
price = gets.chomp.to_f
quantity = gets.chomp.to_i
key_to_lookup = gets.chomp

# TODO: Kodunu aşağıya yaz
# 'product' adında bir hash oluştur, anahtarları "name", "price" ve "stock" olsun
# Sonra key_to_lookup için değeri almak üzere fetch metodunu kullan
# Anahtar mevcut değilse varsayılan değer olarak talimatlardaki tam metni kullan


# Sonucu yazdır
puts result
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

Kendi başına pratik yap: Online Ruby derleyicisi