Solidity 스마트 계약의 기능 가시성

시작하기 전에 솔리디티 스마트 계약에 대해 잘 알고 계시길 바랍니다.

Solidity의 기능은 무엇입니까



함수는 견고하게 계약 내부와 외부 모두에서 선언될 수 있습니다. 함수는 프로그래밍 언어에서 가장 중요한 구성 요소 중 하나입니다. 가시성에 따라 언제 어디서나 호출할 수 있는 단위 또는 코드 블록입니다.

contract myContract{
    function add(uint num_1, uint num_2)public pure returns(uint){
        return num_1 + num_2;
    }
}


위에서 가시성을 언급한 이유는 함수 호출이 가시성에 전적으로 의존하기 때문입니다.
solidity에는 4가지 유형의 함수 가시성 옵션이 있습니다.

공공 기능



위 함수의 예는 공개 함수였습니다. 확인해보세요.

contract myContract{
    function add(uint num_1, uint num_2)public pure returns(uint){
        return num_1 + num_2;
    }
}


공용 함수는 거의 모든 곳에서 호출할 수 있으며 계약 UI의 일부가 될 것입니다. Remix IDE에서 견고하게 사용할 수 있습니다. 컴파일러는 공용 함수에 대한 getter 함수를 자동으로 생성하며, 이 함수는 컴파일 후 표시됩니다. Getter functions here에 대해 자세히 알아볼 수 있습니다.

개인 기능



비공개 함수는 자신이 정의된 계약에서만 호출할 수 있는 함수입니다. 이전 계약에서 다른 계약을 파생하더라도 비공개 함수는 전혀 상속되지 않습니다.
이 예를 확인하십시오.

contract oldContract{
    function add(uint num_1, uint num_2)private pure returns(uint){
        return num_1 + num_2;
    }
}

// this is not gonna work coz the function add() is private

contract newContract is oldContract{
    uint ans = add(2,4);
}


내부 기능



내부 기능은 선언된 계약 내에서 호출할 수 있으며 내부 기능은 개인 기능과 달리 상속됩니다.

contract oldContract{
    function add(uint num_1, uint num_2)internal pure returns(uint){
        return num_1 + num_2;
    }
}

// this is gonna work coz the function add() is internal

contract newContract is oldContract{
    uint ans = add(2,4);
}


외부 기능



외부 가시성으로 설정된 함수는 해당 함수가 정의된 계약 외부에서만 호출할 수 있습니다.
동일한 계약 내에서 외부 함수를 호출할 수 없습니다.

contract oldContract{
    function add(uint num_1, uint num_2)external pure returns(uint){
        return num_1 + num_2;
    }
    // This won't work coz add() function is set external visibility
    uint public answer = add(2, 4);
}


이 작업을 수행하려면 다른 계약을 생성한 다음 거기서 해당 함수를 호출하면 됩니다.

contract oldContract{
    function add(uint num_1, uint num_2)external pure returns(uint){
        return num_1 + num_2;
    }
}


그러나 먼저 새 계약에서 이전 계약의 인스턴스를 만들어야 합니다.

contract newContract {
    oldContract instance = new oldContract();
    uint public answer = instance.add(3, 4);
}


희망 기능 가시성이 이제 명확해졌고 이 튜토리얼이 도움이 되었습니다.
확인하십시오:


더 많은 블록체인, 이더리움 및 견고성 스마트 계약 콘텐츠에 참여하세요.
읽어주시고 봐주셔서 감사합니다 :)

좋은 웹페이지 즐겨찾기