ahmed1990 نشر 30 أكتوبر 2015 أرسل تقرير نشر 30 أكتوبر 2015 أريد تغيير جميع القيم الموجودة في متغير من نوع hash وإضافة % قبل وبعد القيمة، فلو افترضنا أن قيم المتغير كالتالي:{ :a=>'a' , :b=>'b' } فأريدها أن تتغير إلى:{ :a=>'%a%' , :b=>'%b%' } فكيف أستطيع فعل ذلك في روبي؟ اقتباس
0 هشام رزق الله نشر 30 أكتوبر 2015 أرسل تقرير نشر 30 أكتوبر 2015 هنالك عدة طرق لتغيير القيم الموجود في hash معين في روبي، فإذا كنت ترغب تغيير نفس السلسلة النصية دون أن تحصل على سلسلة نصية جديدة فيمكنك في هذه الحالة استخدام توابع مثل gsub! أو replace كما في المثال التالي (أي سطر من السطرين يفي بالغرض):# Two ways to achieve the same result (any Ruby version) my_hash.each{ |_,str| str.gsub! /^|$/, '%' } my_hash.each{ |_,str| str.replace "%#{str}%" } أما لو أردت تغيير السلاسل النصية فيمكنك الاستعانة بهذه الشيفرة البرمجية (كما في المثال الأول؛ أي سطر من السطرين يفي بالغرض):# 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 } أما لو أردت الحصول على hash جديد بالتغييرات الجديدة فيمكنك استخدام هذه الشيفرة:# 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}%"] } ] اقتباس
السؤال
ahmed1990
أريد تغيير جميع القيم الموجودة في متغير من نوع hash وإضافة % قبل وبعد القيمة، فلو افترضنا أن قيم المتغير كالتالي:
فأريدها أن تتغير إلى:
فكيف أستطيع فعل ذلك في روبي؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.