이더리움/솔리디티

[솔리디티] 8. 매핑, 구조체, 열거형

라이튼 2023. 7. 24. 17:35

이전글

 

[솔리디티] 7. view 함수, pure 함수, 모디파이어, 오버로딩

이전글 [솔리디티] 6. 함수, 가시성 지정자, 반환 값, 지역 변수 이전글 [솔리디티] 5. 연산자, 전역 변수, 단위 이전글 [솔리디티] 4. 생성자, 매개변수, 값 타입과 참조 타입, immutable 이전글 [솔리디

kwjdnjs.tistory.com

 

매핑, 구조체, 열거형

 이번 글에서는 매핑, 구조체, 열거형에 대해 알아보겠습니다.

 

1. 매핑

 매핑은 파이썬의 딕셔너리와 유사하게 키와 값을 하나의 쌍으로 저장할 수 있는 타입입니다. 다음과 같이 mapping으로 선언하여 사용할 수 있습니다.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

contract Mapping {
    mapping(address => uint8) public map;

    function saveNum(uint8 n) public {
        map[msg.sender] = n;
    }
}

 

2. 구조체

 솔리디티에서의 구조체는 C언어에서 사용하는 구조체와 동일한 개념입니다. 참조형 타입이며 다음과 같이 사용할 수 있습니다.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

contract Struct {
    struct Pos {
        uint8 x;
        uint8 y;
    }

    Pos public pos;

    function savePos(uint8 _x, uint8 _y) public {
        pos.x = _x;
        pos.y = _y;
    }
}

 

3. 열거형

 마지막으로 열거형에 대해 알아보겠습니다. 솔리디티에서의 열거형은 다른 프로그밍언어에서 사용하는 열거형과 동일한 개념입니다. 하나의 열거형에 최대 256개의 값을 저장할 수 있습니다. 값 타입이며 다음과 같이 사용할 수 있습니다.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

contract Enum {
    enum Color { Black, White, Red, Blue, Yellow }

    Color public color;

    function setRed() public {
        color = Color.Red;
    }

    function setWhite() public {
        color = Color.White;
    }
}

 

 지금까지 매핑, 구조체, 열거형에 대해 알아봤습니다. 감사합니다.

 

 

다음글

 

[솔리디티] 9. 조건문, 반복문

이전글 [솔리디티] 8. 매핑, 구조체, 열거형 이전글 [솔리디티] 7. view 함수, pure 함수, 모디파이어, 오버로딩 이전글 [솔리디티] 6. 함수, 가시성 지정자, 반환 값, 지역 변수 이전글 [솔리디티] 5. 연

kwjdnjs.tistory.com