챕터 8: 구조체와 배열 활용하기
BlockChain,NFT,Web3.0/CryptoZombie 2021. 12. 2. 16:57챕터 8: 구조체와 배열 활용하기
새로운 구조체 생성하기
지난 예시의 Person 구조체를 기억하나?
struct Person {
uint age;
string name;
}
Person[] public people;
이제 새로운 Person를 생성하고 people 배열에 추가하는 방법을 살펴보도록 하지.
// 새로운 사람을 생성한다:
Person satoshi = Person(172, "Satoshi");
// 이 사람을 배열에 추가한다:
people.push(satoshi);
이 두 코드를 조합하여 깔끔하게 한 줄로 표현할 수 있네:
people.push(Person(16, "Vitalik"));
참고로 array.push()는 무언가를 배열의 끝에 추가해서 모든 원소가 순서를 유지하도록 하네. 다음 예시를 살펴보도록 하지:
uint[] numbers;
numbers.push(5);
numbers.push(10);
numbers.push(15);
// numbers 배열은 [5, 10, 15]과 같다.
직접 해보기
createZombie 함수가 무언가 할 수 있도록 만들어 보세!
- 함수에 코드를 넣어 새로운 Zombie를 생성하여 zombies 배열에 추가하도록 한다. 새로운 좀비를 위한 name과 dna는 createZombie함수의 인자값이어야 한다.
- 코드를 한 줄로 간결하게 작성해 보자.
pragma solidity ^0.4.19;
contract ZombieFactory {
uint dnaDigits = 16;
uint dnaModulus = 10 ** dnaDigits;
struct Zombie {
string name;
uint dna;
}
Zombie[] public zombies;
function createZombie(string _name, uint _dna) {
// 여기서 시작
zombies.push(Zombie(_name, _dna));
}
}
https://cryptozombies.io/ko/lesson/1/chapter/8
'BlockChain,NFT,Web3.0 > CryptoZombie' 카테고리의 다른 글
챕터 10: 함수 더 알아보기 (0) | 2021.12.03 |
---|---|
챕터 9: Private / Public 함수 (0) | 2021.12.02 |
챕터 6: 배열 (0) | 2021.12.02 |
챕터 5: 구조체 (0) | 2021.12.02 |
챕터 4: 수학 연산 (0) | 2021.12.02 |