Solidity 枚举 enum
solidity 的枚举类型 enum 是一种用户自定义类型,用于表示多种状态。
枚举类型 enum 内部就是一个自定义的整型,默认的类型为uint8
,当枚举数足够多时,它会自动变成uint16
。
枚举类型 enum可以与整数进行显式转换,但不能进行隐式转换。显示转换会在运行时检查数值范围,如果不匹配,将会引起异常。
枚举类型 enum 至少应该有一名成员。
示例
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SolidityTest { enum Status { None, Pending, Completed, Canceled } Status public status; // 获取状态 function getStatus() external view returns(Status){ return status; } // 设置状态 function setStatus(Status _status) external{ status = _status; } // 设置完成状态 function setCompleted() external{ status = Status.Completed; } }
Solidity允许类型之间进行隐式转换和显式转换。 1. 隐式转换隐式转换时必须符合一定条件,不能导致信息丢失。例如,uint8可以转换为uint16,但是int8不可以转换为uint256,因为in ...