4 Mart 2011, Cuma
Ruby karma her değeri değişen
'%' Ve değeri çok önce ve sonra . eklemek için bir hash her değerini değiştirmek istiyorum
{ :a=>'a' , :b=>'b' }
değiştirilmelidir
{ :a=>'%a%' , :b=>'%b%' }
Bunu yapmak için en iyi yolu nedir?
CEVAP
4 Mart 2011, Cuma
Eğer gerçek dizeleri kendilerini yerde (muhtemelen arzu edilir ve aynı dize nesneleri diğer başvurular etkileyen) mutasyona istiyorsanız:
# Two ways to achieve the same result (any Ruby version)
my_hash.each{ |_,str| str.gsub! /^|$/, '%' }
my_hash.each{ |_,str| str.replace "%#{str}%" }
Eğer karma bir yerde değiştirmek isterseniz, ama dizeleri (yeni ipler almak istiyorum) etkilenmesini istemezsin:
# Two ways to achieve the same result (any Ruby version)
my_hash.each{ |key,str| my_hash[key] = "%#{str}%" }
my_hash.inject(my_hash){ |h,(k,str)| h[k]="%#{str}%"; h }
Eğer yeni bir karma istiyorsanız:
# Ruby 1.8.6
new_hash = Hash[*my_hash.map{|k,str| [k,"%#{str}%"] }.flatten]
# Ruby 1.8.7
new_hash = Hash[my_hash.map{|k,str| [k,"%#{str}%"] } ]
Bunu Paylaş:
Nasıl sayı değeri tarafından Ruby bir ...
Ruby: bir şeyle, bir karma her bir değ...
Ruby on Rails: DB bir sütun max değeri...
Ruby: birden fazla karma anahtarları s...
Nasıl hash değeri ile karma bir dizi s...