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'lerin nasıl oluşturulacağını bildiğinize göre, içlerinde saklanan değerleri almanız gerekir. Sayısal indeksler kullandığınız dizilerin aksine, hash'ler değerlerine erişmek için anahtarları kullanır.

Karşılık gelen değeri almak için anahtarı köşeli parantezlerin 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 tam olarak eşleşmelidir. Var 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)

Ayrıca, anahtar eksik olduğunda 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ı sorunsuz bir şekilde ele almak istediğinizde yararlıdır.

challenge icon

Görev

Kolay

Dört satırlık girdi okuyun:

  1. Bir ürün adı (string)
  2. Bir fiyat (float)
  3. Stoktaki miktar (integer)
  4. Aranacak bir anahtar (string)

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

  • "name" ürün adına eşlenmiş
  • "price" fiyata (float olarak) eşlenmiş
  • "stock" miktara (integer olarak) eşlenmiş

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 "Not found" kullanın. Sonucu yazdırın.

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

999.99

Eğer girdiler Keyboard, 49.99, 100 ve name ise, çıktı şöyle olmalıdır:

Keyboard

Eğer girdiler Mouse, 29.99, 50 ve color ise, çıktı şöyle olmalıdır:

Not found

Eğer girdiler Monitor, 299.0, 8 ve stock ise, çıktı şöyle olmalıdır:

8

Kopya kağıdı

Bir hash içindeki değerlere erişmek için köşeli parantez içindeki anahtarı kullanın:

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

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

Eğer bir anahtar mevcut değilse, Ruby nil döndürür:

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

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

Eksik anahtarlar için varsayılan bir değer sağlamak üzere fetch metodunu kullanın:

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

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

Kendin dene

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

# YAPILACAK: Kodunuzu aşağıya yazın
# "name", "price" ve "stock" anahtarlarına sahip 'product' adında bir hash oluşturun
# Ardından key_to_lookup değerini almak için fetch metodunu kullanın
# Anahtar mevcut değilse varsayılan değer olarak "Not found" kullanın


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