متغيرات الحالة
جزء من قسم الأساسيات في رحلة Solidity على Coddy. الدرس 26 من 53.
المتغير المُعلن عنه داخل العقد ولكن خارج كل دالة هو متغير حالة. تشترك الدوال في ذلك العقد فيه. أما المتغير المحلي المُعلن عنه داخل دالة، فينتمي إلى ذلك الاستدعاء. في سلسلة الكتل المنشورة، يمكن لتغييرات الحالة الناجحة أن تستمر بين المعاملات.
أعلن عن هذا على مستوى العقد:
uint256 count;استخدمه داخل الدالة main المتوفرة:
count = 6;
console.log(count);يتم التصريح عن count على مستوى العقد، وتقوم main بإسناد قيمة إليه. يبدأ مشغّل الاختبارات هذا بتخزين جديد ومصفّر لكل اختبار، لذلك لا تتوقع أن يواصل أحد الاختبارات اختبارًا آخر. في هذا القسم، هيّئ الحالة من خلال عمليات الإسناد داخل main بدلًا من مهيّئات التصريح أو المُنشئات.
يتم التصريح عن متغير حالة على مستوى العقد، خارج أجسام الدوال.
التحدي
سهلصرّح بمتغيّر حالة visits. في main، عيّنه إلى start المُمرَّر، واستدعِ مساعدًا داخليًا addVisit يزيد visits بمقدار واحد، ثم اطبع visits.
تمرّر الاختبارات الوسائط إلى main بهذا الترتيب: uint256 start. يبدأ كل اختبار بحالة عقد جديدة.
استخدم console.log للإخراج المطلوب. اطبع القيم المطلوبة فقط، قيمة واحدة في كل سطر، من دون تسميات إضافية ما لم تحدد المهمة خلاف ذلك.
جرّب بنفسك
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 start) external {
// اكتب حلك هنا.
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2المتغيرات والأنواع
الأعداد الصحيحة غير الموقعةالمدخلات والمخرجاتالأعداد الصحيحة الموقعةالقيم المنطقيةالسلاسل النصية في الذاكرةبطاقة الملف الشخصي5الدوال
معاملات الدوالإرجاع القيمالدوال النقيةاستدعاءات الدوال المساعدةالحسابات القابلة لإعادة الاستخدامتدرّب بنفسك: Playground لـ Solidity