البرمجة

حل مشكلة undefined method `*’ for nil:NilClass

في البداية، يجب أن نلاحظ أن الخطأ الذي تحصل عليه هو undefined method ‘ for nil:NilClass (NoMethodError)، وهذا يعني أن إحدى المتغيرات التي تستخدمها في الضرب () تكون قيمتها nil`، وبالتالي لا يمكن تنفيذ العملية الحسابية.

لحل هذا الخطأ، يجب التأكد من أن قيم المتغيرات hourly_wage و hours_per_week في الكلاس HourlyEmployee قد تم تعيينها بقيم صحيحة وليست nil. يمكنك التحقق من ذلك عن طريق إضافة بعض الشروط التحقق (validation) في الميثودز hourly_wage= و hours_per_week= للتأكد من أن القيم التي تم تعيينها هي قيم صحيحة.

اليك الكود مع إضافة التحقق:

ruby
class HourlyEmployee < Employee attr_reader :hourly_wage, :hours_per_week def hourly_wage=(hourly_wage) if hourly_wage.to_f > 0 @hourly_wage = hourly_wage else raise "Hourly wage must be a positive number." end end def hours_per_week=(hours_per_week) if hours_per_week.to_i > 0 @hours_per_week = hours_per_week else raise "Hours per week must be a positive integer." end end def print_pay_stub print_name if @hourly_wage && @hours_per_week pay_for_period = @hourly_wage * @hours_per_week * 2 formatted_pay = format("$%.2f", pay_for_period) puts "Pay this period: #{formatted_pay}" else puts "Hourly wage and hours per week must be set." end end end

أنا أعتقد أن هذا التعديل سيساعد في حل المشكلة التي تواجهها. إذا كان هناك أي استفسار إضافي، فلا تتردد في طرحه.

المزيد من المعلومات

إذا كنت بحاجة إلى أي معلومات إضافية حول تعلم البرمجة بلغة Ruby أو أي شيء آخر، فلا تتردد في طرحها. سأكون هنا لمساعدتك.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر