Solidity 문법 - (4) 함수의 정의
2023. 5. 29. 13:30ㆍBlockChain/Solidity 깨부수기 ( 유투브 강의 )
1. 함수의 정의
솔리디티에서 함수를 정의 하는 방법은 다음과 같이 표현 해주면 된다.
function [함수명] ( [타입] [파라미터명] ) [접근 제한자] { // 내용 }
function [함수명] ( [타입] [파라미터명] ) [접근 제한자] returns([타입]) { // 내용 }
함수를 정의할 때, 세 가지 경우의 수가 존재한다.
Parameter(파라미터) | Return(리턴) | |
1번 | X | X |
2번 | O | X |
3번 | O | O |
예제를 통해서 위의 세 가지 경우의 수를 살펴 보도록하자.
2. 함수의 정의 예제 코드
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract Exam_Func {
uint256 public a = 10;
function changeA1() public {
a = 1;
}
function changeA2(uint256 _value) public {
a = _value;
}
function changeA3(uint256 _value) public returns(uint256) {
a = _value;
return a;
}
}
각각의 정의된 함수 역할을 살펴보면,
changeA1 함수는 정의된 변수 a의 값을 5로 바꾸는 함수로 매개변수와 리턴이 없는 함수에 해당한다.
changeA2 함수는 매개변수를 받아 변수 a의 값을 바꾸는 함수로, 매개변수는 있으나, 리턴이 없는 함수에 해당한다.
changeA3 함수는 매개변수를 받아 변수 a의 값을 변경하고, 그 값을 리턴하는 함수로 매개변수와 리턴이 있는 함수에 해당한다.
배포후 a의 값을 출력해보면 3인것을 볼 수 있다.
인스턴스를 생성하고,
값을 출력해 3인 것을 확인했다.
changeA1을 실행해보면, 블럭이 생성되고
a를 다시 출력했을 때, 값이 5로 바뀐것을 볼 수 있다.
changeA2도 실행해보자.
값이 매개변수로 넣었던 10으로 바뀌었다.
마찬가지로 changeA3도 같은 결과를 나타내는 것을 알 수 있다.
'BlockChain > Solidity 깨부수기 ( 유투브 강의 )' 카테고리의 다른 글
Solidity 문법 - (6) view와 pure (0) | 2023.05.29 |
---|---|
Solidity 문법 - (5) 접근 제한자 (0) | 2023.05.29 |
Solidity 문법 - (3) 단위 표현 (0) | 2023.05.29 |
Solidity 문법 - (2) 솔리디티 타입 (0) | 2023.05.29 |
Solidity 문법 - (1) Hello World (0) | 2023.05.29 |