728x90
Arrays
- Solidity에는 정적 배열과 동적 배열 존재
// 2개의 원소를 담을 수 있는 고정 길이의 배열
uint[2] fixedArray;
// 또다른 고정 배열으로 5개의 스트링을 담을 수 있음
string[5] stringArray;
// 동적 배열은 고정된 크기가 없으며 계속 크기가 커질 수 있음
uint[] dynamicArray;
정적 배열(Static Array)
- 배열의 크기가 고정되어있고, 크기를 변경할 수 없음
- 선언 시 배열 크키 명시
- 주로 크기가 변하지 않는 데이터를 다룰 때 사용
동적 배열(Dynamic Array)
- 배열의 크기를 유연하게 변경할 수 있음
- 요소를 추가하거나 제거 가능
- 주로 크기가 유동적인 데이터를 다룰 때 사용
구조체 배열
Person[] people; // 동적 배열, 원소를 계속 추가할 수 있음
⇒ 데이터베이스처럼 활용 가능
- 블록체인에 영구적으로 데이터를 저장하며, 여러 속성을 가진 데이터를 관리할 수 있음
- ex) 사용자 정보, 제품 목록, 계약 정보 등
Public 배열
- getter 메소드를 자동적으로 생성
Person[] public people;
- getter 메소드를 통해 배열의 특정 인덱스에 접근할 수 있는 함수도 제공
- 다른 contract에서 배열의 내용을 조회할 수는 있지만, 배열의 내용을 직접 수정할 수는 없음.
⇒ 블록체인에 저장된 데이터를 공개적으로 관리할 때 유용
CryptoZombies 실습
pragma solidity ^0.4.19;
contract ZombieFactory {
uint dnaDigits = 16;
uint dnaModulus = 10 ** dnaDigits;
struct Zombie {
string name;
uint dna;
}
Zombie[] public zombies;
}
- Zombie 구조체의 배열 zombies를 public으로 선언 (동적 배열)
728x90
'공부 > Solidity' 카테고리의 다른 글
| CryptoZombies | Working With Structs and Arrays (0) | 2024.11.19 |
|---|---|
| CryptoZombies | Function Declarations (0) | 2024.11.17 |
| CryptoZombies | Structs (0) | 2024.11.17 |
| CryptoZombies | Math Operations (0) | 2024.11.17 |
| CryptoZombies | State Variables & Integers (0) | 2024.11.17 |