الدوال النقية
جزء من قسم الأساسيات في رحلة Solidity على Coddy. الدرس 23 من 53.
تحسب الدالة النقية قيمتها من معاملاتها وقيمها المحلية دون قراءة حالة العقد أو الكتابة فيها. وهذا يجعل من السهل فهم عملية حسابية والتأكد من صحتها. إن تعليم الدالة بأنها نقية هو وعد يتحقق منه المصرّف، وليس طلبًا لمحو البيانات.
عرّف هذه الدالة المساعدة داخل العقد:
function perimeter(uint256 w, uint256 h) internal pure returns (uint256) {
return 2 * (w + h);
}استخدمها داخل الدالة main المتوفرة:
console.log(perimeter(8, 3));تحتاج الدالة المساعدة إلى العرض والارتفاع فقط. وتُرجع ضعف مجموعهما، لذا يمكن أن تكون نقية. يظل الغلاف الرئيسي من النوع view لأنه يستخدم وحدة تحكم التصحيح؛ أما الدالة المساعدة نفسها فلا تتضمن تسجيلًا أو وصولًا إلى الحالة.
الدالة النقية لا تقرأ حالة العقد ولا تكتب فيها.
التحدي
سهلأنشئ مساعدًا داخليًا نقيًا باسم triple يعيد ثلاثة أضعاف مُدخل uint256 الخاص به. اطبع triple(value) من main.
تمرّر الاختبارات الوسائط إلى main بهذا الترتيب: uint256 value. يبدأ كل اختبار بحالة عقد جديدة.
استخدم console.log للإخراج المطلوب. اطبع القيم المطلوبة فقط، قيمة واحدة في كل سطر، من دون تسميات إضافية ما لم تحدد المهمة ذلك.
جرّب بنفسك
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 value) external view {
// اكتب حلك هنا.
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2المتغيرات والأنواع
الأعداد الصحيحة غير الموقعةالمدخلات والمخرجاتالأعداد الصحيحة الموقعةالقيم المنطقيةالسلاسل النصية في الذاكرةبطاقة الملف الشخصي5الدوال
معاملات الدوالإرجاع القيمالدوال النقيةاستدعاءات الدوال المساعدةالحسابات القابلة لإعادة الاستخدامتدرّب بنفسك: Playground لـ Solidity