Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

استدعاءات الدوال المساعدة

جزء من قسم الأساسيات في رحلة 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 سوى الستة عشر النهائية. يحافظ هذا التقسيم على قاعدة المضاعفة المتكررة في مكان واحد، بينما يصف مساعد آخر التعديل الإضافي.

يمكن لمساعد داخلي استدعاء مساعد داخلي آخر مباشرةً باسمه.

challenge icon

التحدي

سهل

اكتب دوال مساعدة داخلية ونقية 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 {
        // اكتب حلك هنا.
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Solidity