مصفوفات الذاكرة الديناميكية
جزء من قسم الأساسيات في رحلة Solidity على Coddy. الدرس 37 من 53.
استخدم new uint256[](length) لتخصيص مصفوفة في الذاكرة بطول يتم اختياره أثناء التشغيل. تبدأ عناصرها بالقيمة صفر. على الرغم من أن النوع يستخدم أقواسًا فارغة، لا يمكن تغيير حجم مصفوفة الذاكرة المخصّصة باستخدام push أو pop.
تعمل العبارات الواردة في هذا المقتطف داخل الدالة main المقدَّمة.
uint256[] memory values = new uint256[](3);
values[1] = 19;
console.log(values.length);
console.log(values[0]);تحتوي المصفوفة على ثلاث خانات، ولم تُسند قيمة إلا إلى الخانة الوسطى. يظل عنصرها الأول يساوي صفرًا. تُبلغ خاصية الطول عن عدد العناصر الموجودة، وليس قيمة العنصر الأخير.
تبدأ مصفوفة الذاكرة uint256 المخصَّصة حديثًا بعناصر قيمتها صفر.
التحدي
سهلخصّص مصفوفة ذاكرة بطول n، واضبط عنصرها الأخير على marker، ثم اطبع طولها وعنصرها الأخير. تكون قيمة n بين 1 و8.
تمرّر الاختبارات الوسائط إلى main بهذا الترتيب: uint256 n، uint256 marker. يبدأ كل اختبار بحالة عقد جديدة.
استخدم console.log للإخراج المطلوب. اطبع القيم المطلوبة فقط، قيمة واحدة في كل سطر، من دون تسميات إضافية ما لم تحدد المهمة خلاف ذلك.
جرّب بنفسك
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 n, uint256 marker) external view {
// اكتب حلك هنا.
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2المتغيرات والأنواع
الأعداد الصحيحة غير الموقعةالمدخلات والمخرجاتالأعداد الصحيحة الموقعةالقيم المنطقيةالسلاسل النصية في الذاكرةبطاقة الملف الشخصي5الدوال
معاملات الدوالإرجاع القيمالدوال النقيةاستدعاءات الدوال المساعدةالحسابات القابلة لإعادة الاستخدام8المصفوفات
المصفوفات ثابتة الحجممصفوفات الذاكرة الديناميكيةمصفوفات التخزينالتكرار عبر المصفوفاتملخص المصفوفاتتدرّب بنفسك: Playground لـ Solidity