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ı: 25Anahtar, 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ı: UnknownBu, nil almak yerine eksik anahtarları zarif bir şekilde ele almak istediğinizde kullanışlıdır.
Görev
KolayDört satırlık girdiyi okuyun:
- Ürün adı (string)
- Fiyat (float)
- Stoktaki miktar (integer)
- 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.99Girdiler Keyboard, 49.99, 100 ve name ise çıktı şu şekilde olmalıdır:
KeyboardGirdiler Mouse, 29.99, 50 ve color ise çıktı şu şekilde olmalıdır:
Not foundGirdiler Monitor, 299.0, 8 ve stock ise çıktı şu şekilde olmalıdır:
8Kendin 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 resultBu 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 CollectKendi başına pratik yap: Online Ruby derleyicisi