상세 컨텐츠

본문 제목

Solidity - Enum

Programming Language/Solidity

by Yongari 2022. 12. 25. 10:44

본문

 

 

 

Enum

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;
    }
}

 

 

Declaring and importing Enum
Enum 선언 및 가져오기

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 링크

 

Remix - Ethereum IDE

 

remix.ethereum.org

출처 : https://solidity-by-example.org/enum/

'Programming Language > Solidity' 카테고리의 다른 글

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

관련글 더보기