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ı: 25Anahtar, 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ı: UnknownBu, nil almak yerine eksik anahtarları sorunsuz bir şekilde ele almak istediğinizde yararlıdır.
Görev
KolayDört satırlık girdi okuyun:
- Bir ürün adı (string)
- Bir fiyat (float)
- Stoktaki miktar (integer)
- 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.99Eğer girdiler Keyboard, 49.99, 100 ve name ise, çıktı şöyle olmalıdır:
KeyboardEğer girdiler Mouse, 29.99, 50 ve color ise, çıktı şöyle olmalıdır:
Not foundEğer girdiler Monitor, 299.0, 8 ve stock ise, çıktı şöyle olmalıdır:
8Kopya 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ı: 25Eğ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ı: UnknownKendin 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 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 Collect