Siblearn Academy siblearn academy

Enum

Solidity از شمارش پذیرها پشتیبانی می کند و برای مدل سازی انتخاب و پیگیری وضعیت مفید هستند.

Enums را می توان خارج از قرارداد اعلام کرد.

فایلی که enum در آن اعلام شده است

فایلی که enum بالا را وارد می کند


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

contract Enum {
    // Enum representing shipping status
    enum Status {
        Pending,
        Shipped,
        Accepted,
        Rejected,
        Canceled
    }

    // Default value is the first element listed in
    // definition of the type, in this case "Pending"
    Status public status;

    // Returns uint
    // Pending  - 0
    // Shipped  - 1
    // Accepted - 2
    // Rejected - 3
    // Canceled - 4
    function get() public view returns (Status) {
        return status;
    }

    // Update status by passing uint into input
    function set(Status _status) public {
        status = _status;
    }

    // You can update to a specific enum like this
    function cancel() public {
        status = Status.Canceled;
    }

    // delete resets the enum to its first value, 0
    function reset() public {
        delete status;
    }
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
// This is saved 'EnumDeclaration.sol'

enum Status {
    Pending,
    Shipped,
    Accepted,
    Rejected,
    Canceled
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import "./EnumDeclaration.sol";

contract Enum {
    Status public status;
}

روی محیط توسعه ی Remix امتحان بکنید

  • Enum.sol
  • EnumDeclaration.sol
  • EnumImport.sol
  • بازگشت به لیست