الثوابت
جزء من قسم الأساسيات في رحلة Solidity على Coddy. الدرس 29 من 53.
استخدم constant على مستوى العقد لقيمة تُحدَّد وقت التجميع. حدِّد قيمتها في التصريح. لا يمكن إعادة تعيين الثابت. وهو مفيد لعامل تحويل ثابت أو قاعدة مستقرة تشترك فيها عدة دوال.
صرّح بهذا على نطاق العقد:
uint256 constant HOURS_PER_DAY = 24;استخدمه داخل الدالة main المتوفرة:
uint256 daysCount = 3;
console.log(daysCount * HOURS_PER_DAY);HOURS_PER_DAY ثابتة عند أربعٍ وعشرين، لذا تحتوي ثلاثة أيام على اثنتين وسبعين ساعة. بخلاف تهيئة الحالة العادية، تُضمَّن قيمة الثابت في مواضع استخدامه أثناء الترجمة. تُعدّ الأسماء المكتوبة بأحرف كبيرة اصطلاحًا شائعًا للثوابت، وليست متطلبًا من متطلبات المترجم.
تُهيَّأ قيمة الثابت عند التصريح عنه، ولا يمكن إعادة إسناد قيمة إليه.
التحدي
سهلصرّح عن ثابت من النوع uint256 باسم MINUTES_PER_HOUR يساوي 60. اطبع حاصل ضرب hoursCount في ذلك الثابت.
تُمرِّر الاختبارات الوسائط إلى main بهذا الترتيب: uint256 hoursCount. يبدأ كل اختبار بحالة عقد جديدة.
استخدم console.log للإخراج المطلوب. اطبع القيم المطلوبة فقط، قيمة واحدة في كل سطر، من دون تسميات إضافية ما لم تحدد المهمة ذلك.
جرّب بنفسك
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 hoursCount) external view {
// اكتب حلك هنا.
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2المتغيرات والأنواع
الأعداد الصحيحة غير الموقعةالمدخلات والمخرجاتالأعداد الصحيحة الموقعةالقيم المنطقيةالسلاسل النصية في الذاكرةبطاقة الملف الشخصي5الدوال
معاملات الدوالإرجاع القيمالدوال النقيةاستدعاءات الدوال المساعدةالحسابات القابلة لإعادة الاستخدامتدرّب بنفسك: Playground لـ Solidity