1. 함수
- function 이라는 키워드를 이용하여 함수를 정의할 수 있음.
function retrieve() public view returns (uint256){
return favoriteNumber;
}
1-1. 함수의 접근자 지정
public & private :
- 함수는 기본적으로 public 속성으로 선언됨.
- private 을 붙이면 컨트랙트의 외부에서 함수 호출 불가능함. (FundMe.sol에서 Fund() 함수 접근 지정자가 public 인 이유인듯)
- 접근 지정자는 매개변수 바로 다음에 정의함.
external & internal :
- internal 은 private 과 유사하나 자식 컨트랙트는 사용 가능함.
- external 은 컨트랙트의 외부에서만 호출됨. (public 과 뭐가 다른걸까?)
1-2. 함수의 반환값 지정
- returns 키워드를 이용하여 반환값의 자료형을 명시해야함.
1-3. 함수 제어자 지정
- 컨트랙트의 변수를 읽고 쓰는지 여부에 따라 제어자를 지정함.
- view : 변수를 읽기만 할 때
- pure : 변수를 읽지도 쓰지도 않을 때
- 위치는 접근자와 리턴 사이에 있음.
2. require 키워드
require(block.timestamp < finishTime, "This campaign is over");
- 조건이 참이면 함수를 실행하고, 거짓이면 함수를 실행하지 않고 에러를 출력함.
3. 값의 반환
function multipleReturn() public pure returns (
uint a;
uint b;
uint c;
) {
return (10, 20, 30);
}
// 세 번째 리턴값만을 추출하고자 할 경우
uint number;
(, , number) = multipleReturn(); // number: 30
- 값을 반환 할 때 한번에 여러 값을 반환할 수 있음.
언제 public 을 쓰고 언제 external 을 쓰는지 궁금함, 보안과 관련이 되어 있을까?
'Incognito Project' 카테고리의 다른 글
[Incognito Project] 개발 환경 셋팅 (0) | 2022.09.24 |
---|---|
[Incognito Project] 이더리움 2.0 전환 (0) | 2022.09.24 |
[Incognito Project] 솔리디티 문법 03 - mapping 과 msg.sender (0) | 2022.09.24 |
[Incognito Project] 솔리디티 보안 - Keccak256 함수로 난수 생성 (1) | 2022.09.24 |
[Incognito Project] 솔리디티 문법 01 - 자료형과 연산 (0) | 2022.09.24 |