[몰라도 해보는 cryptoZombie] Lesson2. 좀비가 희생물을 공격하다 – 2

in #kr6 years ago

image.png

https://cryptozombies.io/ko/course

챕터 4: require

image.png

아이들에게 프로그래밍을 가르칠 때 가장 먼저 가르치는게 영어 단어다. 영어의 뜻을 이해하면 내용 이해가 훨씬 쉬워지는 경우가 많으므로! require는 요구하다, 필요로 하다라는 뜻이다. 즉, 함수를 실행 시키려면 사전에 통과해야하는 요구사항이다. (키 150이상만 이 놀이기구를 탈 수 있다. 놀이기구를 타려면 만족해야하는 ‘키 150이상’이라는 조건. 이부분이 require 이다.)

펑범한 if문이랑 비슷하다. Require를 쓰고 뒤에 ()를 열고 조건을 써주면 된다. 보통 함수 내용의 시작부분에 적어준다.

require(ownerZombieCount[msg.sender] == 0);

이런 부분은 javascript와 조금 다르다. javascript였다면 ===을 써야했겠지…
이 문제에서는 이렇게 하면 해결된다. 앞서 매핑으로 정의한 ownerZombieCount[msg.sender]의 value가 0과 같아야 함수가 실행된다는 조건이다. 따라서 이렇게 require 문을 추가하면 좀비를 한번도 만들지 않은 사람만 좀비를 생성할 수 있다.

챕터 5: 상속

image.png

Class와 contract가 비슷했다고 했던 이유이다. 상속이 된다. 상속시키는 문법은.. contract를 적고 컨트랙트명을 적고 is 를 적고 상속하려는 contract 명을 적어주면 된다. 크립토좀비에서 설명을 잘하고 있으므로 자세한 설명은 패스한다. (부모클래스 자식클래스 뭐 그런 얘기를 하는데… 부모 컨트랙트 자식 컨트랙트 이런 말 쓰는지 모르겠다.)

contract 새컨트랙트명 is 상속해주는컨트랙트명 {
}

solidity에서 is 같은걸 사용하는걸 보면 루비 같은 느낌도 든다.

작성하라는 contract를 작성해보자.

contract ZombieFeeding is ZombieFactory {

}

이렇게하면 ZombieFactory에서 정의한 함수들을 ZombieFeeding이라는 컨트랙트에서 사용할 수 있다. (단, ZombieFactroy에서 private이라고 선언했던 함수들은 ZombieFeeding에서 사용할 수 없다. 외부에서 접근은 막되 상속해준 애들은 쓰게 해주고 싶다면 internal 이란 제어자를 사용한다. 나중에 나온다.)

챕터 6: import

image.png

import는 뭐.. 파이썬이나 다른 언어에서도 너무 익숙한 문법이라.. 다른 파일의 내용을 불러와 쓰쓰 싶을 때 사용한다.

import “./zobmiefactroy.sol”;

요렇게 불러오면 zombiefactory에 있는 내용을 사용할 수 있다. 단! Public이냐 private이냐 external이냐 internal이냐에 따라 차이가 있겠지만. 이건 추후에 크립토좀비에서 다룬다.


참고문헌
https://d2fault.github.io/2018/03/19/20180319-about-solidity-1/
코어 이더리움 프로그래밍 – 박재현, 오재훈, 박혜영

Sort:  

즐거운 스팀잇 생활하시나요?
무더위야 가라!!!!

더위가 좀 갔으면.. 너무 더워요.. 파이팅입니다!

짱짱맨 출석부 호출로 왔습니다.

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.029
BTC 57809.89
ETH 3118.43
USDT 1.00
SBD 2.37