Be lazy, Be crazy

FunctionOutputs 본문

BlockChain/솔리디티

FunctionOutputs

정신이 많이없는 개발자 2022. 3. 14. 23:46
728x90
반응형
💡 솔리디티에서 return은 어떤 형식으로 될까?? 

FunctionOutputs 말그대로 솔리디티 문법에서 return을 사용할 때  어떻게 return이 되고 어떤 형식으로 되는지 알아봅시다.

 // 대략적으로 3가지 형식이 있다. 
//  보통 언어와 비슷하게 function returnOne () public pure returns(uint){return 1;} 이런형식으로 1개를 리턴
// 조금 신기하게 여러개를 return 할 수도 있다. 
function returnMany() public returns(uint, bool){ return (1, true);} 이와같은형식으로 2개를 리턴 주의할점은 

## returns (타입,타입)  을입력해줌으로써 이함수는 어떤 타입을 return 할 것인지에 대해서는 명시해주어야 합니다. 

###  아래 함수실행 후 결과 사진을 보면 이해가 더 빠르게 된다.

### 구조분해 할당 부분에서 주의할 점은  
      (,bool _b) = returnMany();   이부분이다. returnMany()함수는 2개를 return해주는데 하나만 받고싶은 경우에는 
콤마(,) 를 기준으로 해주어야지 제대로된 구조분해 할당이 된다.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;



//Return multiple outputs
// Named outputs
// Destructuring Assignment

contract FunctionOutputs {


    //multiple outputs;
    function returnMany() public pure returns(uint, bool) {
        return(1,true);
    }
    //변수명으로 출력
    function named() public pure returns(uint x, bool b) {
        return(1,true);
    }

   //이러한 방법은 가스비를 조금 아낄수 있다. 
    function assigned() public pure returns(uint x, bool b) {
        x = 1;
        b = true;
    }


// Destructuring Assignment
   function destructingAssigments() public pure {
       (uint x,bool b) = returnMany();
       (,bool _b) = returnMany();
   }
}

named()
assigned()
returnMany()

반응형

'BlockChain > 솔리디티' 카테고리의 다른 글

Array Remove  (0) 2022.03.22
Array  (0) 2022.03.15
FunctionModifier  (1) 2022.03.13
Error  (0) 2022.03.12
ForAndWhileLoops  (1) 2022.03.12
Comments