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

مصفوفات التخزين

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

المصفوفة الديناميكية المُعلنة على مستوى العقد تكون في مساحة التخزين. استخدم push(value) لإضافة عنصر، وpop() لإزالة العنصر الأخير. يؤدي استدعاء pop على مصفوفة فارغة إلى التراجع عن التنفيذ. يتغير طولها عند إضافة القيم أو إزالتها.

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

uint256[] values;

استخدمه داخل الدالة main المقدمة:

values.push(6);
values.push(15);
values.pop();
console.log(values.length);
console.log(values[0]);

تبدأ المصفوفة فارغة في هذا الاختبار. ينشئ الاستدعاءان push عنصرين، ويزيل pop العنصر الثاني. يبقى العنصر الأول ستة. يؤدي تحديث مصفوفة التخزين إلى تغيير حالة العقد، لذلك لا يمكن أن تكون main من نوع view.

يغيّر push وpop مصفوفة تخزين ديناميكية عند نهايتها.

challenge icon

التحدي

سهل

صرّح عن مصفوفة تخزين ديناميكية من النوع uint256 باسم values. ادفع a وb وc، وأزل العنصر الأخير، ثم اطبع length والقيمة الأخيرة المتبقية.

تمرّر الاختبارات الوسائط إلى main بهذا الترتيب: uint256 a، uint256 b، uint256 c. يبدأ كل اختبار بحالة عقد جديدة.

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

جرّب بنفسك

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 a, uint256 b, uint256 c) external  {
        // اكتب حلك هنا.
    }
}
quiz iconاختبر نفسك

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

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

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