枚举类型是在Solidity中的一种用户自定义类型。
他可以显示的转换与整数进行转换,但不能进行隐式转换。显示的转换会在运行时检查数值范围,如果不匹配,将会引起异常。
枚举类型应至少有一名成员。我们来看看下面的例子吧。
源码:
pragma solidity ^0.8.7;
contract Enum{
enum Status {
None,
Padding,
Shipped,
Completed,
Rejected,
Canceled
}
Status public status;
struct Order {
address buyer;
Status status;
}
Order[] public orders;
function get() view external returns (Status) {
return status;
}
function set(Status _status) external {
status = _status;
}
function ship() external {
status = Status.Shipped;
}
function reset() external{
delete status;
}
}