본문 바로가기
프로그래밍/블록체인

솔리디티 함수(function)에 대해서_1. 가시성(visible)

by 사바라다 2019. 6. 16.

오늘은 이더리움(ethereum)위에 프로그래밍 할 수 있는 솔리디티의 함수에 대해서 알아보도록 하겠습니다.

 

솔리디티의 함수는 아래의 형식을 따릅니다.

 

function 함수이름(입력파라미터) 옵션 (출력파라미터)

{

  함수내용

}

function test(x, y, ..., zn) external returns(a,b, ... an)
{
  ...
}

 

함수이름과 입력파라미터의 경우는 다른 언어들과 별반 차이가 없으므로 넘어가도록 하고 옵션쪽을 좀 더 구체적으로 보겠습니다.

 

옵션은 이함수의 추가적인 정보를 기술합니다. 접근제어, 리턴벨류 등을 말이죠

 

함수의 가시성(visible)

1.  external / public / internal / private

    - private : contract 내부에서만 접근 가능합니다.

                 또한 이름을 명명할때 _를 많이 붙입니다. 위의 예제로 보면 _test가 되겠네요

    - internal : contract 내부와 상속된 contract에서 접근이 가능합니다.

                 외부에서는 접근할 수 없기 때문에 this 로 접근도 불가능합니다.

                 이름은 private와 동일한 느낌으로 _를 붙여주시면 됩니다.

    - public : 모든 방법으로 접근할 수 있습니다. 외부 contract에서도 접근할 수 있습니다.

    - external : 다른 contract와 transaction으로만 호출 될 수 있습니다. 내부호출은 불가능합니다.

 

// external 예제
function getter() external returns(a)
{
  return a;
}

// local function 예제
function _local(uint a, uint b) internal
{
	assert(a == b);
}

 

간단히 예제를 써봤습니다.

 

감사합니다.

댓글