في البرمجة، يتم تقديم مفهومي lvalue و rvalue لتمييز القيم التي يمكن تعديلها (مثل المتغيرات) والتي لا يمكن تعديلها (مثل القيم الثابتة أو النتائج المؤقتة). lvalue تشير إلى موقع في الذاكرة يمكن تعديله، بينما rvalue تشير إلى قيمة لا يمكن تعديلها.
في الشفرة التي قدمتها، الخطأ “lvalue required as left operand of assignment” يحدث في السطر:
-
تعامل LibreOffice: صيغ ودوال15/01/2024
-
تعامل فعّال مع المصفوفات في لغة روبي18/01/2024
cppif(w==l&&h==l&&w=h)
حيث أنه من الواضح أنك تحاول تعيين قيمة w
إلى h
بدلاً من المقارنة بينهما. يجب تصحيح السطر ليصبح:
cppif(w==l&&h==l&&w==h)
بهذا التعديل، يجب أن تتمكن من تجنب الخطأ الذي واجهته.
المزيد من المعلومات
في البرمجة، يعبر مصطلح lvalue عن قيمة يمكن تعديلها، أي يمكن أن تظهر على الجانب الأيسر من عملية الاستنساخ. على سبيل المثال، إذا كانت a
و b
متغيرات، فإن a = b
يعتبر عملية استنساخ صالحة لأن a
يمكن تعديلها. ومن الجدير بالذكر أن معظم المتغيرات والمواقع في الذاكرة تعتبر lvalues.
أما المصطلح rvalue فيشير إلى قيمة غير قابلة للتعديل، وتظهر عادة على الجانب الأيمن من عملية الاستنساخ. على سبيل المثال، في التعبير a + b
، a
و b
هما rvalues لأنهما لا يمكن تعديلهما.
بالنسبة للخطأ الذي واجهته في الشفرة الخاصة بك، فإنه ينبغي تصحيح الجزء المشكوك فيه كما تم ذكره سابقاً:
cppif(w==l&&h==l&&w==h)
بعد تصحيح هذا الجزء، يجب أن يعمل الكود كما هو متوقع دون وجود الخطأ.