Solidity Function Frame

Hong·2022년 12월 4일
0







📦 Solidity Function Frame

function (<parameter types>) {internal | external | public | private} [pure | constant | view | payable] [(modifiers)] [returns (<return types>)]



👾 Parameter Types

함수에서 받을 매개변수를 타입과 함께 선언한다.
매개변수의 이름을 정할 때는 앞에 언더바를 쓰는 관례가 있다.

변수 종류
ex) uint256, address, int, string ... etc

관례
ex) uint256 _num



👀 Visibility Keyword (internal, external, public, private)

Visibility Keyword는 Java나 C++에서 Public, Private, Protected와 같은 접근제어자(access control) 역할을 한다.

Solidity 언어에서 스마트 컨트랙트 내의 상태 변수(State variable)와 함수에 적용할 수 있는 Visibility는 4가지가 있다.

  • internal : 상태변수(state variable)는 internal이 기본값이다(default). 때문에 함수나 상태 변수에 접근 제어자를 쓰지 않고 비워둔다면 internal로 설정된다. internal로 함수를 작성하면 해당 함수를 포함하고 있는 contract 안에서만 작동한다. 또는 internal로 작성된 함수를 포함하고 있는 contract를 상속받은 contract에서만 해당 함수를 사용할 수 있다.
  • external : external은 스마트 컨트랙트의 내용을 공개한다는 것이다. 상태변수(state variable)는 external일 수 없다. 계약서 내부에서 사용할 경우 this를 사용해서 접근해야 한다.
  • public : 공개 함수다. 공개 기능은 계약 인터페이스의 일부이며 내부적으로 또는 메시지를 통해 호출할 수 있다. 공개 상태 변수의 경우 자동 getter 함수가 생성된다.
  • private : 비공개 함수다. 비공개함수는 계약서 내부에서도 자신만 사용하는 함수라는 것을 표시한다. 상태변수와 함수 모두 파생된 계약이 아닌 정의된 계약에서만 볼 수 있다.


🦿 함수의 동작과 관련된 키워드

  • pure : EVM storage에서 변수를 읽어오거나 쓰지 않는 함수임을 명시한다.
  • constant, view : 이더리움 네트워크 상태를 변경하지 않는 함수임을 명시한다.
  • payable : 입금을 받을 수 있는 함수임을 명시합니다.




백번 글로 읽는거보다 한번 써보는게 훨씬 낫다

profile
Notorious

0개의 댓글