متغیرهای تغییرناپذیر (Immutable)

فهرست محتوا

متغیرهای تغییرناپذیر شبیه به ثابت‌ها هستن، اما با یک تفاوت کلیدی:

  • مقدار متغیرهای تغییرناپذیر می‌تونه داخل سازنده (constructor) تنظیم بشه، ولی بعد از اون قابل تغییر نیست.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;

contract Immutable {
    // طبق اصول کدنویسی، نام متغیرهای ثابت و تغییرناپذیر باید با حروف بزرگ نوشته بشه.
    address public immutable MY_ADDRESS;
    uint256 public immutable MY_UINT;

    constructor(uint256 _myUint) {
        MY_ADDRESS = msg.sender; // آدرس فراخواننده قرارداد
        MY_UINT = _myUint;       // مقدار ورودی که هنگام اجرا تعیین می‌شه
    }
}

توضیحات بیشتر: #
  • تفاوت با ثابت‌ها (Constants):
    ثابت‌ها در زمان تعریف مقدارههی می‌شن و نمی‌تونن تغییر کنن.
    اما متغیرهای تغییرناپذیر می‌تونن هنگام اجرای سازنده مقدارههی بشن.
  • مزایا:
    • مثل ثابت‌ها، متغیرهای تغییرناپذیر هم باعث کاهش هزینه گس می‌شن.
    • این نوع متغیرها برای مقادیری که باید فقط یک بار تعیین بشن (مثلاً آدرس فراخواننده قرارداد) مفیدن.
  • مثال در کد بالا:
    • MY_ADDRESS: آدرس کسی که قرارداد رو اجرا کرده.
    • MY_UINT: مقداری که هنگام اجرای سازنده به‌عنوان ورودی به قرارداد داده می‌شه.