الهياكل
جزء من قسم الأساسيات في رحلة Solidity على Coddy. الدرس 43 من 53.
تجمع البنية الحقول ذات الصلة ضمن اسم نوع مخصص. لكل حقل نوع واسم، وقد تكون للحقول أنواع مختلفة. صرّح بالنوع على مستوى نطاق العقد، وأنشئ قيمة، ثم يمكنك الوصول إلى حقولها باستخدام نقطة.
صرّح بهذا على مستوى نطاق العقد:
struct Parcel { uint256 weight; bool ready; }استخدمه داخل الدالة main المتوفرة:
Parcel memory item = Parcel(11, true);
console.log(item.weight);
console.log(item.ready);يحتوي النوع Parcel على الحقلين weight وready. يوفّر المُنشئ الموضعي القيم بترتيب التصريح. يوجد هذا العنصر في الذاكرة أثناء الاستدعاء الحالي؛ ولا يؤدي التصريح عن نوع بنية وحده إلى إنشاء سجلات مخزّنة.
استخدم نقطة يتبعها اسم الحقل لقراءة حقل بنية أو تغييره.
التحدي
سهلصرّح عن بنية باسم Badge تحتوي على uint256 level وbool active، بهذا الترتيب. أنشئ Badge في الذاكرة من المدخلات المقدَّمة واطبع كلا الحقلين.
تمرّر الاختبارات الوسائط إلى main بهذا الترتيب: uint256 level، bool active. يبدأ كل اختبار بحالة عقد جديدة.
استخدم console.log للإخراج المطلوب. اطبع القيم المطلوبة فقط، قيمة واحدة في كل سطر، من دون تسميات إضافية ما لم تحدد المهمة ذلك.
جرّب بنفسك
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 level, bool active) external view {
// اكتب حلك هنا.
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2المتغيرات والأنواع
الأعداد الصحيحة غير الموقعةالمدخلات والمخرجاتالأعداد الصحيحة الموقعةالقيم المنطقيةالسلاسل النصية في الذاكرةبطاقة الملف الشخصي5الدوال
معاملات الدوالإرجاع القيمالدوال النقيةاستدعاءات الدوال المساعدةالحسابات القابلة لإعادة الاستخدامتدرّب بنفسك: Playground لـ Solidity