Solidity supports enumerables and they are useful to model choice and keep track of state.
솔리디티는 enum(열거형)을 지원합니다. 그리고 선택을 모델링하고 상태를 추적하는 데 유용합니다.
Enums can be declared outside of a contract.
열거형은 계약 외부에서 선언할 수 있습니다.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Enum {
// Enum representing shipping status
// 상태를 표현하는 Enum
enum Status {
Pending,
Shipped,
Accepted,
Rejected,
Canceled
}
// Default value is the first element listed in
// 초기(디폴트) 값은 이 리스트에서 첫번째 요소다.
// definition of the type, in this case "Pending"
// 타입의 정의에 따라 이런 케이스일 경우 "Pending"이 초기(디폴트)값이다.
Status public status;
// Returns uint
// Pending - 0
// Shipped - 1
// Accepted - 2
// Rejected - 3
// Canceled - 4
function get() public view returns (Status) {
return status;
}
// Update status by passing uint into input
function set(Status _status) public {
status = _status;
}
// You can update to a specific enum like this
function cancel() public {
status = Status.Canceled;
}
// delete resets the enum to its first value, 0
function reset() public {
delete status;
}
}
File that the enum is declared in
열거형이 선언되는 파일
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
// This is saved 'EnumDeclaration.sol'
enum Status {
Pending,
Shipped,
Accepted,
Rejected,
Canceled
}
File that imports the enum above
위의 열거형을 가져오는 파일
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
import "./EnumDeclaration.sol";
contract Enum {
Status public status;
}
Remix 링크
Solidity - Data Locations (0) | 2022.12.25 |
---|---|
Solidity - Structs (0) | 2022.12.25 |
Solidity - Array (0) | 2022.12.25 |
Solidity - Mapping (0) | 2022.12.23 |
Solidity - For and While Loop (0) | 2022.12.23 |