کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آشنایی با scope یا حوزه تعریف متغیرها در سالیدیتی

دامنه متغیرهای محلی محدود به تابعی است که در آن تعریف شده‌اند، اما State Variables می‌توانند سه نوع دامنه داشته باشند.

Public

متغیرهای حالت عمومی را می‌توان به‌صورت داخلی و همچنین از طریق پیام‌ها در دسترس قرارداد. برای متغیر حالت public، یک تابع دریافت‌کننده به‌صورت خودکار تولید می‌شود.

Internal

متغیرهای حالت internal فقط درون قرارداد در دسترس هستند.

Private

متغیرهای حالت خصوصی فقط به‌صورت داخلی از قرارداد فعلی قابل‌دسترسی هستند و در قرارداد مشتق شده از آن قابل‌استفاده نمی‌باشند.

    pragma solidity ^0.5.0;
contract C {
   uint public data = 30;
   uint internal iData= 10;
   
   function x() public returns (uint) {
      data = 3; // internal access
      return data;
   }
}
contract Caller {
   C c = new C();
   function f() public view returns (uint) {
      return c.data(); //external access
   }
}
contract D is C {
   function y() public returns (uint) {
      iData = 3; // internal access
      return iData;
   }
   function getResult() public view returns(uint){
      uint a = 1; // local variable
      uint b = 2;
      uint result = a + b;
      return storedData; //access the state variable
   }
}
1402/01/08 925
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...