Ruby /
Hashes#!/usr/bin/ruby # # Hashes # # hash oluşturulması h = { "a" => 1, "b" => 2 } h2 = Hash.new #yeni hash oluşturulur h2[:ad] = "Oz" #hash'e değer atanır h2[:soyad] = "Ko" #hash'e değer atanır #hash'in elemanlarına ulaşılması h["a"] h["b"] #hash'e yeni eleman eklenmesi h["c"] = 3; #Like an array, a hash contains references to objects, not copies of them. #Modifications to the original objects will affect all references to them: motto = "Don't thread on me" flag = { :motto => motto, :picture => "picture.png" } motto.upcase! flag[:motto] #Hash'lerde key olarak symbol kullanılması �nerilir. bu iş 2 yolla yapılabilir. #Using symbols instead of strings saves memory and time. #It saves memory because there's only one symbol instance, instead of many string instances. #If you have many hashes that contain the same keys, the memory savings adds up. #Using symbols as hash keys is faster because the hash value of a symbol is simply its object ID. #If you use strings in a hash, Ruby must calculate the hash value of a string each time it's used as a hash key. h = Hash.new h[:name] = "Oz" # veya h['name'.intern] = "Oz"; # �ntanımlı değeriyle birlikte hash oluşuturulması h = Hash.new("default value") h[1] #default value h['heyyo'] #default value h[:x] #default value # İki hash'in birleştirilmesi h1 = { "a"=> 1, "b"=>2 } h2 = { "c"=> 3, "d"=>4 } h1.merge!(h2) # Bir hash'in değerinin başka bir hash ile değiştirilmesi h1 = { "a"=> 1, "b"=>2 } h2 = { "a"=> 3, "b"=>4 } h1.replace(h2) #Hash'ten eleman silinmesi h = { 1 => "aaa" } h.delete(1) #hash'in key'lerine ulaşılması h = { "a"=> 1, "b"=>2 } h.keys #hash'in value'lerine ulaşılması h = { "a"=> 1, "b"=>2 } h.values #hash'in eleman sayısının bulunması h = { "a"=> 1, "b"=>2 } h.keys.size #Hash'in t�m elemanlarını silmek i�in h = { "a"=> 1, "b"=>2 } h.clear #Hash'in key,value �iftleri arasında gezinme h = { "a"=> 1, "b"=>2, "d" => 4, "c" => 3} h.each_pair { |key, value| puts "key: #{key} value: #{value}" } #Hash'in keyleri arasında gezinme h = { "a"=> 1, "b"=>2, "d" => 4, "c" => 3} h.each_key { |key| puts key } #Hash'in value'leri arasında gezinme h = { "a"=> 1, "b"=>2, "d" => 4, "c" => 3} h.each_value { |val| puts val } #Hash'in diziye d�n�şt�r�lmesi h = { "a"=> 1, "b"=>2, "d" => 4, "c" => 3} h.to_a #Hash'in keylere g�re sıralanması h = { "a"=> 1, "b"=>2, "d" => 4, "c" => 3} h.keys.sort.each do |x| puts x end #İ�i�e hash'lerdeki i�teki hash'in değerlerine ulaşılması h = Hash.new h[:phone] = { :work => "5555555", :gsm => "999999999"} h[:phone].each_pair do |k,v| puts "#{k} #{v}" end #hash'in keyleri arasında arama yapma h = { "a"=> 1, "b"=>2, "d" => 4, "c" => 3} h.keys.grep /[^ab]/ # hash'in key'lerine g�re sıralama yapmak. h = {"1" => "bir", "7" => "yedi", "2" => "iki"} h.keys.sort {|a,b| a.to_i <=> b.to_i}.each do |key| puts h[key] end # sadece "sort" kullanarak yaptığımız sıralama sonunda # d�nd�r�len değer hash yerine bir array'dir. h = {:ad => "Oz", :soyad => "Ko", :adres => "Ist"} h.sort {|a, b| a.to_s <=> b.to_s} #=> [[:ad, "Oz"], [:adres, "Istanbul"], [:soyad, "Ko"]] |