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

קורס סולידיטי – חלק ראשון – basic types

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

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

סולידטי , statically typed language

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

חשוב מאוד להשתמש בטייפים בסולידיטי , אין שום הנחות כאן, אין גם אפשרות לשים any . חייבים להגדיר כל משתנה או פונקציה בצורה מדוייקת ונכונה. אם תעשו טעות , או שלא תוכלו לקמפל את החוזה שלכם. או שתשלמו על זה ביוקר, אחד הנושאים החמים ברשת gas optimization, בחלקו הגדול קשור לטייפים שאתם מגדירים למשתנים השונים. (בהמשך עוד נדון על gas optimization).

נעבור כעת על הטייפים הכי בסיסיים שעובדים איתם בסולידיטי:

  • int\uint\uint256
  • bytes
  • address
  • boolean
  • string

נדבר מעט על כל אחד מהטייפים הללו כעת על מנת שיהיה ברור לכם מתי להשתמש בהם ולאחר מכן אציג דוגמאות.

int\uint\uint256 – מספרים חיוביים ושליליים

מייצגים מספרים שלמים חיוביים או שליליים, אם תרצו לתמוך במספרים שליליים int הוא הטייפ הנכון uint מייצג מספרים חיוביים (unsigned and signed numbers).

כמו כן הטייפ uint256 שהינו הנפוץ ביותר ככותב סולידיטי, אם אתם מפתחים ב-higth level אולי לא תכירו את הטייפ הזה (אבל זה בסדר גמור אסביר פה כל מה שצריך לדעת בנושא של טייפ זה). גם אנחנו נעשה בו שימוש רב בחוזים החכמים השונים שנכתוב בקורס זה.

הינו מייצג מספרים מספר חיובי (unsigned) ומפה מגיע החלק הראשון של הטייפ uint. ומה מייצג ה256? למעשה מייצג מחרוזת של מספרים עד 256 ביטים כך שכל ספרה מייצגת ביט אחד, כלומר מספר בעורך 256 ספרות בבסיס 2, כלומר 0-1. חושב לציין שסולידיטי לא תומך במספרים לא שלמים.

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.9;

contract ReadWrite { 
    int fav1 = -45;
    uint8 fav2 = 244;
    uint256 fav3 = 33465787967543245834645645654;
}

bytes – מאפיין כללי למחרוזת.

אפשר להגדיר משתנים שהם קבועים, בין אורך 1 ל32 , למשל bytes4 יהיה משתנה של לא יותר מ4 תווית. משתנה דינאמי יורד באמצעות המאפיין bytes.

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.9;

contract ReadWrite { 
    bytes2 fav1 = "f";
    bytes10 fav2 = "434556hgdf";
    bytes15 fav3 = "434556hgdf4t65";
    bytes32 fav4 = "434556hgdf4t65434556hgdf4t653121";

    bytes favorite = "adfadsfhadsk fhadksfh akds fhlkjadhf ljadhsf adjhsfl kadhsflk j.....";

}

address – מאפיין ייחודי שמגדיר שמתשנה הינו כתובת.

כתובת של חוזה או ארנק של איתריום הינה גם ה20 בייטס של ה- public key של אותו ארנק או חוזה. המאפיין הזה נוכן לנו אפשרות להגדיר משתנה שיודע להכיל כתובת תקינה, כמו כן לכתובת יש אפשרויות רבות נראה בהמשך, לצורך ההמחשה אפשר לראות את הקוד הבא שבו אנחנו מגדירים משתנה שהוא כתובת ולאחר מכן מבקשים לקבל את ה balance של אותה הכתובת:

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.9;

contract ReadWrite { 
    address public myAddress = 0x7595C1B36110c1cddB021626d2f43E25BdF6Cd16;

    function getBalance() public view returns(uint256) {
        return myAddress.balance;
    }
}

בתמונה אפשר לראות חוזה שהעליתי (לרשת טסט goerli) אפשר לראות בצד שמאל למטה שיש משתנה שמחזיק כתובת ופונקציה שהחזירה את הערך שנמצא בארנק זה.

סולידיטי חוזה עם פונקציה שמחזירה ערך הנמצא בארנק

Boolean – בדומה לכל שפה אנחנו מדברים על true and false

בדומה לכל שפה ישנם משתנים שהינם true , false . עוזרים לנו בתנאים השונים שלנו שקוד. אין יותר מידי מה להוסיף המפאיין הזה מאד פשוט וברור אבל אי אפשר שלא לציין אותו בפוסט זה שמדבר על המאפיינים הבסייסים.

String – משתנה שמחזיק מחזורת של תווים.

גם string מוכר לנו כמעט מכל שפה שהיא, וגם פה אין יותר מידי התחקמויות. לפעמים שואלים מה ההבדל בין string לבין bytes אז למעשה הם מתנהגים אותו דבר, רק שאם bytes אפשר להגדיר גודל של מחרוזת עם מוסיפים מספר כלשהו למשל bytes4 יהיה מחזורת של עד 4 תווים.

סיכום basic types in solidity

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

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

remix-קורס-סולידיטיקורס סולידיטי – חלק ראשון – remix remix-קורס-סולידיטיקורס סולידיטי – חלק ראשון – DEPLOY remix קורס בלוקציין - חוזה חכם עבור NFTקורס בלוקציין – חוזה חכם עבור NFT אפליקציה וחוזה חכם DAPPקורס בלוקציין – אפליקציה וחוזה חכם DAPP
blockchain 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 אנגולר בלוקציין בניית אתרים וורדפרס חיפוש עבודה כלים נוספים כללי נגישות קורסים ריאקט תלת מימד תקלות ופתרונות
צור קשר
כל הזכויות שמורות לקודקודייל
ליצירת קשר: @ קודקודייל
גלילה לראש העמוד