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

كيف أُحوّل كائن إلى hash في روبي؟

ahmed1990

السؤال

لنفترض أن لدي الكائن Gift مع المتغيرات @name = "book" و @price = 15.95 فما هي أفضل طريقة لتحويل محتويات هذا الكائن إلى hash كما في المثال التالي:

{name: "book", price: 15.95}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...