Solidity 列舉(Enums)
阿新 • • 發佈:2018-12-20
案例
下面的程式碼是我對官方案例作了簡單的修改而成。ActionChoices就是一個自定義的整型,當列舉數不夠多時,它預設的型別為uint8,當列舉數足夠多時,它會自動變成uint16,下面的GoLeft == 0,GoRight == 1, GoStraight == 2, SitStill == 3。在setGoStraight方法中,我們傳入的引數的值可以是0 - 3當傳入的值超出這個範圍時,就會中斷報錯
pragma solidity ^0.4.4;
contract test {
enum ActionChoices { GoLeft, GoRight, GoStraight, SitStill }
ActionChoices _choice;
ActionChoices constant defaultChoice = ActionChoices.GoStraight;
function setGoStraight(ActionChoices choice) public {
_choice = choice;
}
function getChoice() constant public returns (ActionChoices) {
return _choice;
}
function getDefaultChoice () pure public returns (uint) {
return uint(defaultChoice);
}
}