متغیرها

فهرست محتوا

در سالیدیتی، سه نوع متغیر وجود داره:

  1. محلی (Local):
    • داخل یک تابع تعریف می‌شن.
    • روی بلاکچین ذخیره نمی‌شن.
  2. وضعیت (State):
    • بیرون از یک تابع تعریف می‌شن.
    • روی بلاکچین ذخیره می‌شن.
  3. جهانی (Global):
    • اطلاعاتی درباره بلاکچین ارائه می‌دن.

solidityCopy code// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;

contract Variables {
    // متغیرهای وضعیت روی بلاکچین ذخیره می‌شن.
    string public text = "Hello";
    uint256 public num = 123;

    function doSomething() public {
        // متغیرهای محلی روی بلاکچین ذخیره نمی‌شن.
        uint256 i = 456;

        // مثال‌هایی از متغیرهای جهانی
        uint256 timestamp = block.timestamp; // زمان فعلی بلاک
        address sender = msg.sender; // آدرس فراخواننده
    }
}

توضیحات اضافی: #
  • متغیرهای وضعیت (State):
    این متغیرها وقتی در قرارداد ذخیره می‌شن، قابل دسترسی توسط همه هستن و تغییراتشون دائمیه (تا وقتی قرارداد وجود داره).
    مثال: text و num توی این کد.
  • متغیرهای محلی (Local):
    این متغیرها فقط در محدوده تابعی که تعریف شدن، وجود دارن و بعد از اجرای تابع حذف می‌شن.
    مثال: i توی تابع doSomething.
  • متغیرهای جهانی (Global):
    این متغیرها اطلاعات مفیدی رو از بلاکچین فراهم می‌کنن، مثل:
    • block.timestamp: زمان بلوک فعلی.
    • msg.sender: آدرس کسی که تابع رو فراخوانی کرده.

می‌تونی این کد رو توی Remix اجرا کنی تا بفهمی هر نوع متغیر چطوری کار می‌کنه. این یکی از مفاهیم کلیدی برای نوشتن قراردادهای هوشمنده!