Solidity

使用 Enum 賦值

  • March 28, 2022

我是 Solidity 的新手。

我想知道是否可以使用列舉在 Solidity 中做這樣的事情。

enum Menu {
Burger,
Pizza,
Fries
}

uint price; // storing different prices of different items here

// Assuming that the var userMenu contains the user's selected value from Menu enum 
if (userMenu == Menu.Burger) {
price = 2;
} else if (userMenu == Menu.Pizza){
price = 4;
} else if (userMenu == Menu.Fries) {
price = 1;
}

我知道將值初始化為價格可以更有效地完成。我只想知道是否有任何方法可以做這樣的事情。謝謝!

你可以這樣嘗試:

// SPDX-License-Identifier: MIT
pragma solidity 0.8.0;

contract Test1 {
   Menu userMenu;

   enum Menu {
       Burger,
       Pizza,
       Fries
   }

   uint price; // storing different prices of different items here

   function setUseMenu(Menu _enumIndex) external {
       userMenu = _enumIndex;
   }

   function setPrice() public {
       // Assuming that the var userMenu contains the user's selected value from Menu enum 
       if (userMenu == Menu.Burger) {
           price = 2;
       } else if (userMenu == Menu.Pizza){
           price = 4;
       } else if (userMenu == Menu.Fries) {
           price = 1;
       }
   }

   function getPrice() external view returns(uint) {
       return price;
   }
}

引用自:https://ethereum.stackexchange.com/questions/124918