ahmed1990 نشر 30 أكتوبر 2015 أرسل تقرير مشاركة نشر 30 أكتوبر 2015 أريد تغيير جميع القيم الموجودة في متغير من نوع hash وإضافة % قبل وبعد القيمة، فلو افترضنا أن قيم المتغير كالتالي:{ :a=>'a' , :b=>'b' } فأريدها أن تتغير إلى:{ :a=>'%a%' , :b=>'%b%' } فكيف أستطيع فعل ذلك في روبي؟ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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}%"] } ] اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
ahmed1990
أريد تغيير جميع القيم الموجودة في متغير من نوع hash وإضافة % قبل وبعد القيمة، فلو افترضنا أن قيم المتغير كالتالي:
فأريدها أن تتغير إلى:
فكيف أستطيع فعل ذلك في روبي؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.