컨트렉트 간 상속
컨트렉트 간의 함수에 접근할 수 있도록 컨트렉트를 상속받는 것
contract newContract is Contract {}
뭔가 module.export랑 같은 맥락이라고 생각하면 될 듯하다!
솔리디티 파일이 나뉘었을 경우 다른 파일을 불러오는 방법은 react와 동일하게 import를 사용한다.
storage
상태변수 : 전역변수 : const
이것은 블록체인에 등록되서 사라지지 않는다.
memory
지역변수 : let
함수안에서만 발동되어 함수 호출이 종료되면 사라진다.
- 먹이를 먹는 좀비 DNA를 얻을 필요가 있으므로, 그 다음으로 myZombie라는 Zombie형 변수를 선언한다 (이는 storage 포인터가 될 것이다). 이 변수에 zombies 배열의 _zombieId 인덱스가 가진 값에 부여한다.
Zombie storage myZombie = zombies[_zombieId];
struct Zombie {
string name;
uint dna;
}
Zombie storage myZombie;
이 Zombie의 sturct를 가진 myZombie라는 변수가 생성되었다. 그 변수는 storage 상태변수이다.
그리고 이 변수에는
Zombie[] public zombies;
////모르겠다
Zombie의 structure를 가진 zombies라는 배열의 zombieId 인덱스가 가진 값에 부여한다 뭔뜻임?
- 먼저, _targetDna가 16자리보다 크지 않도록 해야 한다. 이를 위해, _targetDna를 _targetDna % dnaModulus와 같도록 해서 마지막 16자리 수만 취하도록 한다.
_targetDna = _targetDna % dnaModulus;
///이게 왜 16자리 수를 취한 건지 이해 안됨
합수 접근 제어자
public
private
external - 함수가 컨트랙트 바깥에서만 호출될 수 있고 컨트랙트 내의 다른 함수에 의해 호출될 수 없다는 점을 제외하면 public과 동일
internal - 함수가 정의되어있는 컨트렉트를 상속하는 컨트렉트에서도 접근이 가능함.
'Solidity' 카테고리의 다른 글
[크립토 좀비] 솔리디티 openzeppelin (0) | 2021.11.30 |
---|---|
[ 솔리디티 이더리움, 크립토좀비 ] 컨트렉스 상호작용, 인터페이스 (0) | 2021.10.11 |
[ 솔리디티 이더리움 , 크립토좀비 ] requirea문 (0) | 2021.10.08 |
[ 솔리디티 이더리움 , 크립토좀비 ] mapping (0) | 2021.10.08 |
[ 솔리디티 이더리움 , 크립토좀비 ] 변수,배열,함수 선언 (0) | 2021.10.08 |