필요에 따라 자료형(타입)을 바꿔야 할 때가 있다.
이번 챕터에 활용할 것이 string형을 uint형으로 바꾸는것이다.
안의 내용물이 바뀐 결과인 자료형이 되는데에 문제가 없으면 변환이 된다
챕터 11 답
// 매개변수 _str을 keccak256()을 통해 16진수 난수를 만들고
// 그것을 uint()로 string에서 uint로 형변환을 해주어 rand 변수에 담고
// 그것을 10^16승으로 나눈 나머지를 반환한다
uint rand = uint(keccak256(_str));
return rand % dnaModulus;
챕터 12 답
// 랜덤좀비생성 함수를 public으로 선언
function createRandomZombie(string _name) public {
// _name을 매개변수로 랜덤DAN를 만드는 함수에 전달하여
// 반환받은 랜덤DNA값을 randDna에 담고
uint randDna = _generateRandomDna(_name);
// 이름과 랜덤DNA를 가지고 좀비생성
_createZombie(_name, randDna);
}
챕터 13 답
// 이벤트 선언
event NewZombie(uint zombieId, string name, uint dna);
//zombies.push(Zombie(_name, _dna)); 를 아래와 같이 수정
// zombies배열에 전달받은 이름과 DNA로 만든 Zombie구조체를 만들어 넣고
// 배열의 인덱스는 0부터 시작하므로 그 배열의 인덱스를 뜻하게 되게끔 -1을 해주고
// id에 담는다
uint id = zombies.push(Zombie(_name, _dna)) - 1;
// 이렇게 만들어진 id와 이름, DNA를 가지고 이벤트 호출
NewZombie(id, _name, _dna);
'솔리디티 > 크립토좀비' 카테고리의 다른 글
레슨2 챕터 5, 6 - 상속 / import (0) | 2022.02.12 |
---|---|
레슨2 챕터2, 3, 4 - 매핑, 주소 / msg.sender / require (0) | 2022.02.12 |
레슨1 챕터10 - 함수 제어자 (0) | 2022.02.11 |
레슨1 챕터9 - 함수 접근 제어자 (private, pubilc, internal, external) (0) | 2022.02.10 |
레슨1 챕터7, 8 - 함수선언, 구조체와 배열 활용 (0) | 2022.02.10 |
댓글