קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
ראשי ♦ בלוקציין ♦ קורס סולידיטי – חלק ראשון – constant, immutable

קורס סולידיטי – חלק ראשון – constant, immutable

וינר יאיר 23 בדצמבר 2022 אין תגובות

כמפתחים חדשים או וותיקים, חלכם אולי מצאתם לנכון לעבור עם שפות מבוססות טייפים, וחלקכם אולי פחות. גם מי שכן עובד עם טייפים, בשפות מסויימות, למשל typescript, אפשר למצוא כי החשיבות לא גבוהה, כלומר אפשר גם בקלות לוותר עליהם או לעשים טייפים גולבלים או מספר טייפים וכל החשיבות של טייפים היא נטו לצורך נוחות ואם זה לא מדויק אז לא נורא. כמפתחי בלוקציין, או מפתחים שרוצים להיות מפתחי בלוקציין, כל ״הנחה״ שתעשו עם הטייפים תעלה לכם ביוקר, החשיבות של להיות gas efficient smart contract מתחיל בדיוק הטייפים. חלק מהותי של קורס סולידיטי זה הוא לנסות ולהחדיר בכם את ההבנה וכך תוכלו לייצר חוזה מדוייק ורזה מגז מיותר. ועכשיו אחרי כל ההקדמה הזו מה הם הטייפים constant, immutable?

בפוסט הקודם דיבנו על משתנים שהם state variable , שנשמרים במעיין מחסנית של נתונים שקשורים לחוזה, והם זמינים לנו (ולכל העולם) ומשתנים אלו מוגדרים בראשית החוזה (מעל קונסטרקטור) וכן הם מסוג storage. אך נוכל להגדיר משתנים בראשית החוזה שאינם storage, והם יכולים להיות משנה טייפים הבאים:

constant, immutable

להלן דוגמה שתמחיש מי אלו המשתנים והיכן ניתן להשתמש שהם ובהמשך הסבר מפורט:

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.9;

contract ConstantTypes { 
    uint constant FAV_NUMBER = 9;
    uint immutable i_second_fav_number;

    constructor() {
     i_second_fav_number = 10;   
    }

    function getFaveNumber() public pure returns(uint) {
        return FAV_NUMBER;
    }
}

אז יש השואלים מה ההבדלים בין constant and immutable, אז אפשר לראות את ההבדל היחידי בינהם בדוגמה הזו, ואסביר:

  • constant – אינו ניתן לשינוי ומקבל את הגדרתו כבר בזמן הקמפול של הקוד.
  • immutable – אינו ניתן לשינוי , אלא אם אינו הוגדר בתחילת הקמפול, יהיה ניתן להגדיר אותו בזמן הקונסטרקטור.

חושב לציין כי מידע זה אינו נשמר ב storage slots אלא הם חלק מה bytecode של החוזה עצמו. כמו כן, אפשר לראות איזו קונבנציה שהשתמשתי פה, זה נכון להרבה ממתכנתי סולידיטי, כך ש constant כותבים באותיות גודולת. ועבור immutable נשתמש ב i_ בתחילת השם של המשתנה.

חלק ראשון – constant, immutable

שימוש נכון במשתנים ושימוש ב constant and immutable יהיה לכם חסכון בגז, עוד יותר מכך שהכל יהיה תקין ובמידה ויש משתנים שהינם קבועים ולא ניתנים לשינוי, מאוד מומלץ לא לאפשר זאת ולקבוע זאת מראש באמצעות ההגדרות הללו.

למעשה סיימנו את הפוסט הזה, הוא קצר וממוקם, וגם חשוב, נתקלתי כבר לא במעט חוזים שאנשים רשמו משתנים שאינם קבועים, שכן בהחלט היו יכולים להיות קבועים, וזה חבל מהמון בחינות. ולכן יש להקפיד על הגדרות הללו וכל הגדרות אחרות שתלמדו בהמשך כי להיות מפתח בלוקציין טוב זה אומר הקפדה מקסימלית כי מכאן הכל מתחיל וכפי שאתם יודעים ברגע שהדברים עולים לבלוקציין, אין יכולת חזרה. בהצלחה ונתראה בשיעורי ההמשך בקורס סולידי זה. 🐊🤓

פוסטים קשורים:

remix-קורס-סולידיטיקורס סולידיטי – חלק ראשון – memory, calldata and storage remix-קורס-סולידיטיקורס סולידיטי – חלק ראשון – basic types remix-קורס-סולידיטיקורס סולידיטי – חלק ראשון – DEPLOY remix remix-קורס-סולידיטיקורס סולידיטי – חלק ראשון – remix
blockchain remix solidity בלוקציין מפתח בלוק מפתח בלוקציין מתכנת בלוקציין סולידיטי קורס בלוקציין קורס סולידיטי

אודות המחבר

יאיר וינר להציג את כל הפוסטים של וינר יאיר


« פוסט קודם
פוסט הבא »

השארת תגובה

ביטול

חיפוש באתר
בחירת העורכים
29 בדצמבר 2023 עידן יצחקי

שדה טקסט עשיר עם תמונות

אתם הולכים להיות מופתעים עד כמה HTML יכול להיות חכם ולבצע משהו כל כך מורכב, שאם אנחנו היינו רוצים ליצור

1 באוקטובר 2021 עידן יצחקי

איך למשוך דינמית favicon של אתרים אחרים ב-JS

בפוסט זה נראה איך אפשר על פי לינקים בדף למשוך את ה-favicon מהדומיין שלהם באופן דינמי, בדיקה של תקינות התמונה

פופולרי
Javascript functions – היכרות עם סוגי פונקציות
Javascript
21 בדצמבר 2024 אין תגובות
Nested routing in angular standalone component
Typescript
15 בנובמבר 2024 תגובה אחת
בחרו לפי תגיות
angular blockchain css ethers express front-end fullstack GQL html javascript next js nextjs nodejs react hooks reactjs solidity webgl אנגולר בלוקציין וורדפרס לימודי אנגולר לימודי וורדפרס לימוד ריאקט מדריך front-end מדריך GQL מדריך אנגולר מדריך וורדפרס מדריך חינם react מדריך ריאקט מפתח בלוק מפתח בלוקציין מתכנת front-end מתכנת בלוקציין מתכנת פרונט סולידיטי קורס front end קורס fullstack קורס nextjs קורס אנגולר קורס בלוקציין קורס בלוקציין בחינם קורס סולידיטי קורס ריאקט קורס תכנות קורס תכנות בחינם
סינון על פי קטגוריות
CSS fullstack HTML IIS Javascript nodeJs SEO Typescript אנגולר בלוקציין בניית אתרים וורדפרס חיפוש עבודה כלים נוספים כללי נגישות קורסים ריאקט תלת מימד תקלות ופתרונות
צור קשר
כל הזכויות שמורות לקודקודייל
ליצירת קשר: @ קודקודייל
גלילה לראש העמוד