Ruby Hash nedir? Ruby Hash nasıl kullanılır?

0

Ruby programlama dilinde Hash ne anlama gelmektedir? Ruby Hash nedir?

Ruby Hash nasıl kullanılır?

ergin ergin (2539)
8 yıl önce sordu

    Toplam 1 Cevap


    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
    

     

    ergin ergin (2539)
    8 yıl önce cevaplandı

      üyelik gerektirir

      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