0
Ruby programlama dilinde Hash ne anlama gelmektedir? Ruby Hash nedir?
Ruby Hash nasıl kullanılır?
1
Çoğu programlama dilinde Dictionary olarak geçen, Array(dizi) benzeri Key-Value çifti barındıran yine Array'e benzeyen başka bir taşıyıcıya Hash denir. Key-Value olarak dediğimiz yapı;
uzmanim = { "key1" => "value1", "key2" => "value2", "key3" => "value3", ...}
şeklindedir. Bu syntax'ı yapısı ile kullanır.
uzmanim = { :key1 => "value1", :key2 => "value2", :key3 => "value3", ... }
Bu kullanım arasında da bir fark bulunmamatadır.
Array'deki sıra (index) mantığı burada Key'ler ile oluyor gibi düşünebilirsiniz. Key'ler unique'dir yani bir Hash içinde 2 tane aynı key'den olamaz.
Hash Kullanımı:
araba = {"araba1" => "bmw", "araba2" => "mercedes", "araba3" => "audi" }
Keys, Values, Values_at
Tahmin edeceğiniz gibi Keys ile Hash'e ait Key'leri, Values ile sadece Key'lere karşılık gelen değerleri, Values_at ile verdiğimiz Key'lere ait değerleri alırız.
adsoyad = { "ad" => "ergin", "soyad" => "tüzer" } adsoyad.keys # => [:ad, :soyad] adsoyad.values # => ["ergin", "tüzer"] adsoyad.values_at("ad", "soyad") # => ["ergin", "tüzer"]
Fetch
Hash içinden sorgu yaparken kullanılır. Eğer olmayan key çağırırsanız Exception oluşur. Aksi takdirde nil (boş) döner.
araba = {"araba1" => "audi", "araba2" => "bmw"} araba.fetch("araba1") # "audi" sonucunu verir araba.fetch("araba3") # KeyError: key not found: :araba3 hatasını verir
Count, Size, Length
Hash'in boyunu / uzunluğunu verirler.
adsoyad= {"ad" => "ergin", "soyad" => "tüzer"} adsoyad.count # 2 adsoyad.size # 2 adsoyad.length # 2
Key?, Value?, Has_key?, Has_value?
Soru işareti ile biten method'lar bize her zaman Boolean yani true ya da false döndürür. Hash'in içinde ilgili Key var mı? Value var mı? diye kontrol edebiliriz.
adsoyad = {"ad" => "ergin", "soyad" => "tüzer"} adsoyad.key?("ad") # => true adsoyad.has_key?("ad") # => true adsoyad.key?("ikinciad") # => false adsoyad.has_key?("ikinciad") # => false adsoyad.value?("ergin") # => true adsoyad.has_value?("ergin") # => true adsoyad.value?("uzmanim") # => false adsoyad.has_value?("uzmanim") # => false
Empty?
Hash'in içinde eleman olup olmadığını öğreniriz.
adsoyad = {"ad" => "ergin", "soyad" => "tüzer"} adsoyad.empty? #true
Shift
Hash'den key-value çiftini silmek için kullanılır. Her seferinde ilk key-value çiftini siler.
adsoyad = { "ad" => "ergin", "soyad" => "tüzer" } adsoyad.shift # ["ad" , "ergin"] silinir adsoyad = { "soyad" => "tüzer" } # haline dönüşür.
Delete
Hash'den key kullanarak eleman silmek için delete method'u kullanılır.
adsoyad = { "ad" => "ergin", "soyad" => "tüzer" } adsoyad.delete("soyad") # "tüzer" adsoyad = { "ad" => "ergin" } # halini alır
Cevap yazabilmek için üye girişi yapmalısınız.
Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol