美文网首页
元宇宙之小白开发(26)-- solidity 中的枚举(enu

元宇宙之小白开发(26)-- solidity 中的枚举(enu

作者: Edwin_红狼 | 来源:发表于2022-05-21 15:26 被阅读0次

先来一段代码:

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.4.16 <0.9.0;

contract test{

    enum ActionChoices{Goleft,GoRight,GoStraight,GoStill}

    ActionChoices choice;

    ActionChoices constant defaultChoice = ActionChoices.Goleft;

    function setGoStraight() public {

        choice = ActionChoices.GoStraight;

    }

    function setGoStill() public {

        choice = ActionChoices.GoStill;

    }

    //由于枚举类型不属于|ABI|的一部分,因此对于氖来自solidity外部调用,

    //getChoice 的签名会自动被改为getChoice() returns(uint8);

    function getChoice() public view returns(ActionChoices){

        return choice;

    }

    function getDefaultChoise() public pure returns(uint){

        return uint(defaultChoice);

    }

}

一、枚举定义

    enum ActionChoices{Goleft,GoRight,GoStraight,GoStill}

二、设置默认值

    ActionChoices constant defaultChoice = ActionChoices.Goleft;

三、定义四个方法,两个设置,一个是获得当前状态,一个是默认状态;

获得默认状态的,不会由被设置了而改变;

由于默认设置为goLeft,所以GetDefaultChoice时总是显示枚举的第0个的内容;

这个跟大多数语言一样,都是从0开始编码的。所有即使设置了goStill了,在getChoice时显示为3;

相关文章

网友评论

      本文标题:元宇宙之小白开发(26)-- solidity 中的枚举(enu

      本文链接:https://www.haomeiwen.com/subject/sspcprtx.html