在 solidity 世界中,为我们提供了用户定义类型的一种方法——枚举类型,主要运用在表征某一事物的状态转移场景或限制有限的状态。枚举体实现的状态转移有点类似于项目管理中的里程碑,必须做完前一件事,后面的才可以运行。
实验目的
掌握枚举类型定义的要点;理解枚举对实际生产的作用;明白枚举类型返回值的含义。
实验要求
1、下面合约,存在两处错误,结合相关知识进行正确修改。
2、思考定义enum时,成员对象能不能为空?成员对象能不能重复出现?
3、编译部署合约,调用getChoice方法,查看返回值的类型及输入参数的限制条件。
4、思考函数getDefaultChoice的返回值是多少?调用函数getDefaultChoice,检查它的返回值。
以下是本次实验所使用到的测试代码,请使用remix编辑器完成该实验
// SPDX-License-Identifier: MIT
pragma solidity >=0.4.16 <0.8.0;
contract enumTest {
enum ActionChoices { GoLeft, GoRight, GoStraight, SitStill, 张三};
ActionChoices public _choice;
ActionChoices constant defaultChoice = ActionChoices.GoStraight;
function setGoStraight(ActionChoices choice) public {
_choice = choice;
}
function getChoice() public view returns (ActionChoices) {
return _choice;
}
function getDefaultChoice() public returns (uint) {
return uint(defaultChoice);
}
}
下面是本次实验所配套的视频教程:
