Enum
Enum 為列舉,通常我們使用列舉是為了狀態上的管理如下:
enum Status {
Pending, // 待辦
Shipped, // 已發貨
Accepted, // 接受
Rejected, // 被拒絕
Canceled // 取消
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
contract EnumExample {
enum Status {
Pending, // 待辦
Shipped, // 已發貨
Accepted, // 接受
Rejected, // 被拒絕
Canceled // 取消
}
Status public status;
// 目前狀態
function get() public view returns(Status){
return status;
}
// 設定狀態
function set(Status _status) public returns(Status){
return status = _status;
}
// 設定取消
function canceled() public {
status = Status.Canceled;
}
// 重新設定
function rest() public {
delete status;
}
}
但通常這樣的狀態管理都會把他整理起來(看了也舒服)
Import
接下來介紹 Import 指令,就和字面上一樣引入檔案
1.首先看一下目錄 5_1 , 5_2
2.我們把Status 整理到 5_1_EnumDeclaration.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
enum Status {
Pending, // 待辦
Shipped, // 已發貨
Accepted, // 接受
Rejected, // 被拒絕
Canceled // 取消
}
3.我們開啟 5_1_EnumImportExample.sol,引入 5_1_EnumDeclaration
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
import "./5_1_EnumDeclaration.sol";
contract EnumImportExample {
Status public status;
function get() public view returns(Status){
return status;
}
function set(Status _status) public returns(Status){
return status = _status;
}
function canceled() public {
status = Status.Canceled;
}
function rest() public {
delete status;
}
}
使用沒問題 🥳
有任何問題可反饋: [email protected]