Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

متغيرات الحالة

جزء من قسم الأساسيات في رحلة Solidity على Coddy. الدرس 26 من 53.

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

أعلن عن هذا على مستوى العقد:

uint256 count;

استخدمه داخل الدالة main المتوفرة:

count = 6;
console.log(count);

يتم التصريح عن count على مستوى العقد، وتقوم main بإسناد قيمة إليه. يبدأ مشغّل الاختبارات هذا بتخزين جديد ومصفّر لكل اختبار، لذلك لا تتوقع أن يواصل أحد الاختبارات اختبارًا آخر. في هذا القسم، هيّئ الحالة من خلال عمليات الإسناد داخل main بدلًا من مهيّئات التصريح أو المُنشئات.

يتم التصريح عن متغير حالة على مستوى العقد، خارج أجسام الدوال.

challenge icon

التحدي

سهل

صرّح بمتغيّر حالة 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  {
        // اكتب حلك هنا.
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Solidity