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

كيف أقارن بين متغيرات فيها إصدارات معينة في روبي؟

ali_agha

السؤال

أريد كتابة شيفرة برمجية للمقارنة بين سلاسل نصية موجود فيها إصدارات ومن ثم إرجاع الإصدار الأحدث بينها، السلاسل النصية بها معلومات كالتالية:

'0.1', '0.2.1', '0.44'
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

هنالك عدة طرق للمقارنة بين الإصدارات في روبي فيمكنك على سبيل المثال استخدام هذا كشرط للمقارنة ومعرفة الإصدار الأكبر بين الإصدارين:

Gem::Version.new('0.4.1') > Gem::Version.new('0.10.1')

وهنالك طريقة ثانية عن طريق استخدام Gem::Dependency مع تابع match?() وnew حيث نمرر رقم الإصدار الأول في new وأما الإصدار الثاني فسنمرره إلى تابع match?() للمقارنة بين هذين الإصدارين كما في المثال التالي:

Gem::Dependency.new('', '~> 1.4.5').match?('', '1.4.6beta4')

أو يمكنك إنشاء صنف جديد للمقارنة بين الإصدارات كما يظهر في المثال التالي:

class Version < Array
  def initialize s
    super(s.split('.').map { |e| e.to_i })
  end
  def < x
    (self <=> x) < 0
  end
  def > x
    (self <=> x) > 0
  end
  def == x
    (self <=> x) == 0
  end
end
p [Version.new('1.2') < Version.new('1.2.1')]
p [Version.new('1.2') < Version.new('1.10.1')]

المصدر

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...