【Solidity】enum(列挙型)の書き方は?

Solidityにおけるenum(列挙型)の書き方について解説します。

構文

Solidityにおけるenum(列挙型)の書き方ですが、以下のようにします。

値ですが、最初の定数を0とし、0から1, 2, 3 ... , nと順に割り振られます。

enum 変数名 {
    定数1,
    定数2,
    定数n
}

サンプルコード

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract Test {
    // 列挙型
    enum Colors {
        None,   // 0
        Red,    // 1
        Green,  // 2
        Blue    // 3
    }

    Colors color = Colors.None;


    function setRed() public {
        color = Colors.Red;
    }
    function setGreen() public {
        color = Colors.Green;
    }
    function setBlue() public {
        color = Colors.Blue;
    }
    function clearColor() public {
        color = Colors.None;
    }

    function getColor() public view returns(Colors) {
        return color;
    }

}

enum(列挙型)は特定の定数を纏めたい場合に便利です。コードの見通しも良くなりますので、積極的に活用していきましょう。

タイトルとURLをコピーしました