التعيينات
جزء من قسم الأساسيات في رحلة Solidity على Coddy. الدرس 42 من 53.
يربط التعيين المفاتيح بالقيم في مساحة التخزين. صرّح عن mapping(keyType => valueType) على مستوى العقد واستخدم الأقواس المربعة لقراءة مفتاح أو كتابته. يُرجع المفتاح غير المكتوب القيمة الافتراضية لنوع القيمة، مثل الصفر بالنسبة إلى uint256.
صرّح عن هذا على مستوى العقد:
mapping(uint256 => uint256) points;استخدمه داخل الدالة main المتوفرة:
points[4] = 18;
console.log(points[4]);
console.log(points[5]);تُغيّر المهمة المفتاح الرابع فقط. لم يتم إسناد قيمة إلى المفتاح الخامس مطلقًا، وتُقرأ قيمته كصفر. لا توفر الخريطة طولًا أو قائمة مضمّنة بمفاتيحها؛ لذا تتبّع المفاتيح بشكل منفصل إذا كان التطبيق يحتاج إلى التكرار.
تُقرأ قيمة مفتاح الخريطة غير المكتوب كالقيمة الافتراضية لنوع قيمته.
التحدي
سهلأعلن عن mapping من مفاتيح uint256 إلى قيم uint256 باسم scores. عيّن points للمفتاح player، ثم اطبع scores[player] و scores[player + 1].
تمرّر الاختبارات الوسيطات إلى main بهذا الترتيب: uint256 player، uint256 points. يبدأ كل اختبار بحالة عقد جديدة.
استخدم console.log للإخراج المطلوب. اطبع القيم المطلوبة فقط، قيمة واحدة في كل سطر، من دون تسميات إضافية ما لم تحدد المهمة ذلك.
جرّب بنفسك
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 player, uint256 points) external {
// اكتب حلك هنا.
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2المتغيرات والأنواع
الأعداد الصحيحة غير الموقعةالمدخلات والمخرجاتالأعداد الصحيحة الموقعةالقيم المنطقيةالسلاسل النصية في الذاكرةبطاقة الملف الشخصي5الدوال
معاملات الدوالإرجاع القيمالدوال النقيةاستدعاءات الدوال المساعدةالحسابات القابلة لإعادة الاستخدامتدرّب بنفسك: Playground لـ Solidity