함수에 private 이나 public을 붙임에 따라 함수 사용(접근)에 제한을 줄 수 있다.
기본적으로 아무것도 안쓰면 public이다
- public
다른 컨트랙트에서도 호출할 수 있게 된다
- private
해당 함수가 속해있는 컨트랙트에서만 호출할 수 있고 다른 컨트랙트에서는 사용할 수 없다.
- internal
해당 함수가 속한 컨트랙트와 해당 컨트랙트를 상속받는 컨트랙트에서만 사용할 수 있고
그외의 상속받지 않은 다른 컨트랙트에서는 사용할 수 없다.
- external
함수가 있는 컨트랙트 내부에서는 사용할 수 없고 다른 컨트랙트에서만 사용할 수 있다.
챕터 9 수정 전
function _createZombie(string _name, uint _dna) private {
uint id = zombies.push(Zombie(_name, _dna)) - 1;
zombieToOwner[id] = msg.sender;
ownerZombieCount[msg.sender]++;
NewZombie(id, _name, _dna);
}
수정 후
function _createZombie(string _name, uint _dna) internal {
uint id = zombies.push(Zombie(_name, _dna)) - 1;
zombieToOwner[id] = msg.sender;
ownerZombieCount[msg.sender]++;
NewZombie(id, _name, _dna);
}
'솔리디티 > 크립토좀비' 카테고리의 다른 글
레슨3 챕터1 - 컨트랙트 불변성(Immutable) (0) | 2022.02.17 |
---|---|
레슨2 챕터 10, 11, 12, 13 - 인터페이스 (0) | 2022.02.12 |
레슨2 챕터 7, 8 - storage, memory (0) | 2022.02.12 |
레슨2 챕터 5, 6 - 상속 / import (0) | 2022.02.12 |
레슨2 챕터2, 3, 4 - 매핑, 주소 / msg.sender / require (0) | 2022.02.12 |
댓글