function 이름() public { // public, private, internal, external 변경 가능
// 내용
}
function을 정의 할 때, 특별한 점은 public
과 같은 접근 제어라를 함수명 뒤에 선언하는 것입니다.
접근 제어자는 public
, private
, internal
, external
이 있는데, 이번에는 public
만 사용합니다.
// SPDX-License-Identifier: MIT
pragma solidity >=0.7.0 <0.9.0;
contract Test {
uint256 public a = 3;
function changeA() public {
a = 5;
}
}
위 코드를 보면, a 라는 변수는 3을 할당 받았는데, changeA()
함수를 실행하면 a는 5를 재할당 받게 됩니다.
function 이름(타입 _값) 접근 제어자 {
// 내용
}
// SPDX-License-Identifier: MIT
pragma solidity >=0.7.0 <0.9.0;
contract Test {
uint256 public a = 3;
function changeA(uint256 _value) public {
a = _value;
}
}
처음과 달라진 점은 uint256 _value
라는 부분입니다.
이제 changeA()
를 실행할 때마다, _value의 파라미터 값을 넘겨줘야 합니다.
이 파라미터는 a에 재할당이 되어 값이 변경됩니다.
function changeA(uint256 _value1, uint256 _value2) public {
a = _value;
}
function 이름(타입 _값) 접근 제어자 returns (반환할 타입) {
// 내용
}
여기서 주의해야 할 점은, 반환할 타입에 변수를 쓰지 않고 타입만 사용하는 것입니다.
// SPDX-License-Identifier: MIT
pragma solidity >=0.7.0 <0.9.0;
contract Test {
uint256 public a = 3;
function changeA(uint256 _value) public returns (uint256) {
a = _value;
return a;
}
}
위와 같이 사용하면, changeA()
가 실행될 때마다, _value의 파라미터 값을 받고 a 변수에 할당 후 리턴 됩니다.