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;
}