본문 바로가기
블록체인/솔리디티

[Solidity] 구조체 & 배열

by 발담그는블로그 2021. 12. 1.

struct (구조체)

pragma solidity ^0.4.19;

contract ZombieFactory {

    uint dnaDigits = 16;
    uint dnaModulus = 10 ** dnaDigits;

    // 여기서 시작
    struct Zombie {
        uint dna;
        string name;
    }

}

Solidity는 복잡한 자료형을 표현하기 위해, 구조체를 제공한다. 

 

배열

정적배열

// 2개의 원소를 담을 수 있는 고정 길이의 배열: (동적배열)
uint[2] fixedArray;
// 또다른 고정 배열으로 5개의 스트링을 담을 수 있다:
string[5] stringArray;

동적배열

// 동적 배열은 고정된 크기가 없으며 계속 크기가 커질 수 있다:
uint[] dynamicArray;

 

구조체의 활용

앞서 생성한 구조체의 동적 배열을 활용하면, 구조화된 데이터를 저장하는 것이 유용하다.

pragma solidity ^0.4.19;

contract ZombieFactory {

    uint dnaDigits = 16;
    uint dnaModulus = 10 ** dnaDigits;

    struct Zombie {
        string name;
        uint dna;
    }

    Zombie[] public zombies;
}

구조체라는 단어는 약간 생소하지만, 생긴 모습을 보면 익숙하다. 형태가 wrapper class와 유사한 듯 싶다. 

 

레퍼런스

- 크립토좀비 lesson 1 (https://cryptozombies.io/ko)

반응형