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