Hash Oluşturma
Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası — ders 73 / 88.
Diziler, sıralı listeleri depolamak için harikadır; ancak bazen değerleri sayısal indeksler yerine belirli etiketlerle ilişkilendirmeniz gerekir. Bir hash, verileri her bir anahtarın karşılık gelen bir değere işaret ettiği anahtar-değer çiftleri olarak depolar.
Bir hash oluşturmak için, anahtarların ve değerlerin => (hash rocket olarak adlandırılır) ile ayrıldığı süslü parantezler kullanın:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person # Çıktı: {"name"=>"Alice", "age"=>25, "city"=>"Paris"}Her anahtar hash içinde benzersiz olmalıdır, ancak değerler tekrarlanabilir. Anahtarlar ve değerler; dizeler, sayılar ve hatta diziler dahil olmak üzere herhangi bir veri tipi olabilir.
Ayrıca boş bir hash oluşturabilir ve daha sonra çiftler ekleyebilirsiniz:
scores = {}
puts scores # Çıktı: {}Hash'ler, bir isim ve fiyata sahip bir ürün veya e-posta ve şifreye sahip bir kullanıcı gibi, isimlendirilmiş özniteliklere sahip gerçek dünya nesnelerini temsil etmek için mükemmeldir. Konumları hatırladığınız dizilerin aksine, hash'ler verilerinizi düzenlemek için anlamlı isimler kullanmanıza olanak tanır.
Görev
KolayÜç satırlık girdi okuyun:
- Bir kitap başlığı (string)
- Bir yazar adı (string)
- Bir yayın yılı (integer)
Hash rocket sözdizimini (=>) kullanarak üç anahtar-değer çiftine sahip book adında bir hash oluşturun:
- Kitap başlığına eşlenmiş
"title" - Yazar adına eşlenmiş
"author" - Yayın yılına (tamsayı olarak) eşlenmiş
"year"
puts kullanarak hash'i yazdırın.
Örneğin, girdiler Ruby Basics, Jane Smith ve 2023 ise, çıktı şu şekilde olmalıdır:
{"title"=>"Ruby Basics", "author"=>"Jane Smith", "year"=>2023}Girdiler The Great Gatsby, F. Scott Fitzgerald ve 1925 ise, çıktı şu şekilde olmalıdır:
{"title"=>"The Great Gatsby", "author"=>"F. Scott Fitzgerald", "year"=>1925}Girdiler 1984, George Orwell ve 1949 ise, çıktı şu şekilde olmalıdır:
{"title"=>"1984", "author"=>"George Orwell", "year"=>1949}Kopya kağıdı
Bir hash, verileri anahtar-değer çiftleri olarak saklar; burada her anahtar karşılık gelen bir değere işaret eder.
Bir hash oluşturmak için, anahtarların ve değerlerin => (hash rocket) ile ayrıldığı süslü parantezler kullanın:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person # Çıktı: {"name"=>"Alice", "age"=>25, "city"=>"Paris"}Her anahtar hash içinde benzersiz olmalıdır, ancak değerler tekrarlanabilir. Anahtarlar ve değerler; dizeler, sayılar veya diziler dahil olmak üzere herhangi bir veri türü olabilir.
Boş bir hash oluşturabilirsiniz:
scores = {}
puts scores # Çıktı: {}Kendin dene
# Girdiyi oku
title = gets.chomp
author = gets.chomp
year = gets.to_i
# YAPILACAK: Hash rocket sözdizimini (=>) kullanarak üç anahtar-değer çiftine sahip 'book' adında bir hash oluşturun
# Anahtarlar şunlar olmalıdır: "title", "author", "year"
# Hash'i yazdır
puts bookBu 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 Girdi3Operatö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