اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يمكننا فعل ذلك بعدة طرق باستخدام روبي أو ريلز، فمثلا يمكننا استعمال حلقة التكرار لتكرار جميع القيم الموجودة ومن ثم استخدام عدّة توابع مثل instance_variable_get و to_s وdelete للتحويل إلى hash كما في المثال التالي:

class Gift
  def to_hash
    hash = {}
    instance_variables.each {|var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
    hash
  end
end


h = Gift.new("Book", 19).to_hash

كما يمكنك استخدام هذه الطريقة التي استعملنا فيها توابع متنوعة مثل  to_sym وinstance_variable_get حيث استخدمنا حلقة التكرار map لنتمكن من التعامل مع كل عنصر وفي النهاية استخدمنا التابع to_h للتحويل إلى hash:

class Gift
  def to_hash
    instance_variables.map do |var|
      [var[1..-1].to_sym, instance_variable_get(var)]
    end.to_h
  end
end

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...