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);
}
희망 기능 가시성이 이제 명확해졌고 이 튜토리얼이 도움이 되었습니다.
확인하십시오:
더 많은 블록체인, 이더리움 및 견고성 스마트 계약 콘텐츠에 참여하세요.
읽어주시고 봐주셔서 감사합니다 :)
Reference
이 문제에 관하여(Solidity 스마트 계약의 기능 가시성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/seek4samurai/function-visibility-in-solidity-smart-contracts-3fhf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)