פונקציות טהורות
חלק מהיחידה יסודות במסלול ה-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 {
// כתבו כאן את הפתרון שלכם.
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
תרגלו בעצמכם: Solidity אונליין