Appearance
枚举
在 Solidity
中,枚举类型是一种用户定义的类型,它可用于定义有限的一组可能的值。
枚举类型的实现很简单,其定义形式为:enum {EnumName} {Value1, Value2,....,Valuen}
。
示例
下面是一个基本的 Solidity
枚举类型的声明和使用:
solidity
pragma solidity ^0.8.0;
contract EnumDemo {
enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
Days public today;
function setToday(Days _today) public {
today = _today;
}
function getToday() public view returns (Days) {
return today;
}
}
在这个示例中,我们定义一个名为 Days
的枚举类型,其中包含一周七天。然后,我们定义了一个公共的 today
变量,它是 Days
类型。
我们还定义了一个公共的 setToday
函数,该函数用于更改 today
值。
最后,我们定义了一个公共的 getToday
函数,用于获取当前的 today
值。
接下来,我们可以使用以下代码来测试我们的程序功能:
solidity
contract TestEnum {
EnumDemo public obj = new EnumDemo();
function testToday() public {
obj.setToday(EnumDemo.Days.Monday);
assert(obj.getToday() == EnumDemo.Days.Monday);
}
}
在上面的示例代码中,我们声明了一个名为 TestEnum
的合约,并创建了一个 EnumDemo
的对象。
然后,我们通过 setToday
函数设置 today
的值为 Monday
,并使用assert函数验证today的值是否为 Monday
。
如果它是,那么 assert
函数将返回 true
。