Содержание

Перечисления (перечисляемый тип, enums) в Solidity

Перечисления – один из способов создания пользовательского типа в Solidity. Они явно преобразуются в и из всех целых типов, но неявное преобразование не допускается. Явные преобразования проверяют диапазоны значений во время выполнения, а отказ вызывает исключение. В перечислениях должен быть хотя бы 1 член.

pragma solidity ^0.4.16;

contract test {
    enum ActionChoices { GoLeft, GoRight, GoStraight, SitStill }
    ActionChoices choice;
    ActionChoices constant defaultChoice = ActionChoices.GoStraight;

    function setGoStraight() public {
        choice = ActionChoices.GoStraight;
    }

    // Поскольку перечисления не являются частью ABI, то "getChoice"
    // будет автоматически изменено в "getChoice() returns (uint8)".
    // Используемый целочисленный тип достаточно велик,
    // чтобы удерживать все значения перечисления. То есть, если
    // существует больше значений, то будет использоваться `uint16` и т.д.
    function getChoice() public view returns (ActionChoices) {
        return choice;
    }

    function getDefaultChoice() public pure returns (uint) {
        return uint(defaultChoice);
    }
}
Материал был полезен? Поделитесь в соц. сетях:
Логотип echain.ru

Добавить комментарий

Ваш e-mail не будет опубликован.