دوال قراءة الحالة العامة
جزء من قسم الأساسيات في رحلة Solidity على Coddy. الدرس 28 من 53.
تؤدي إضافة public إلى متغير حالة إلى جعل المترجم ينشئ دالة getter يمكن استدعاؤها من خارج العقد. ولا تنشئ دالة setter. داخل العقد، اقرأ المتغير مباشرةً باسمه. تتحكم الرؤية العامة في الواجهة، وليس في ما إذا كان تخزين سلسلة الكتل سريًا.
صرّح بهذا على مستوى العقد:
uint256 public score;استخدمه داخل الدالة main المقدَّمة:
score = 32;
console.log(score);يُنشئ التصريح uint256 public score دالة getter تُسمّى score للمتصلين الخارجيين. داخل main، يقرأ الاسم المجرد متغير الحالة. ولا تزال كتابة قيمته تتطلب كود العقد؛ إذ لا تتيح public للمتصلين إسناد قيمة إلى التخزين مباشرةً.
يحصل متغير الحالة العام على دالة getter خارجية، وليس دالة setter تلقائية.
التحدي
سهلصرّح عن uint256 public total. عيّن total إلى amount المُزوَّد داخل main واطبعه.
تمرّر الاختبارات الوسائط إلى main بهذا الترتيب: uint256 amount. يبدأ كل اختبار بحالة عقد جديدة.
استخدم console.log للإخراج المطلوب. اطبع القيم المطلوبة فقط، قيمة واحدة في كل سطر، من دون تسميات إضافية ما لم تحدد المهمة خلاف ذلك.
جرّب بنفسك
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 amount) external {
// اكتب حلك هنا.
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2المتغيرات والأنواع
الأعداد الصحيحة غير الموقعةالمدخلات والمخرجاتالأعداد الصحيحة الموقعةالقيم المنطقيةالسلاسل النصية في الذاكرةبطاقة الملف الشخصي5الدوال
معاملات الدوالإرجاع القيمالدوال النقيةاستدعاءات الدوال المساعدةالحسابات القابلة لإعادة الاستخدامتدرّب بنفسك: Playground لـ Solidity