상세 컨텐츠

본문 제목

Solidity - Fuction

Programming Language/Solidity

by Yongari 2022. 12. 26. 22:27

본문

 

There are several ways to return outputs from a function.

함수에서 출력을 반환하는 방법에는 여러 가지가 있습니다.

 

Public functions cannot accept certain data types as inputs or outputs

공용 기능은 특정 데이터 유형을 입력 또는 출력으로 허용할 수 없습니다.

 

 

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

contract Function {
    // Functions can return multiple values.
    // 함수들은 여러 변수 값을 반환합니다.
    function returnMany()
        public
        pure
        returns (
            uint,
            bool,
            uint
        )
    {
        return (1, true, 2);
    }

    // Return values can be named.
    // 반환 값의 이름을 지정할 수 있습니다.
    function named()
        public
        pure
        returns (
            uint x,
            bool b,
            uint y
        )
    {
        return (1, true, 2);
    }

    // Return values can be assigned to their name.
    //  반환 값을 이름에 할당할 수 있습니다.
    // In this case the return statement can be omitted.
    // 이 경우 반환문을 생략할 수 있습니다.
    function assigned()
        public
        pure
        returns (
            uint x,
            bool b,
            uint y
        )
    {
        x = 1;
        b = true;
        y = 2;
    }

    // Use destructuring assignment when calling another
    // function that returns multiple values.
    여러 값을 반환하는 다른 함수를 호출할 때는 디스트럭쳐링 할당을 사용합니다.
    function destructuringAssignments()
        public
        pure
        returns (
            uint,
            bool,
            uint,
            uint,
            uint
        )
    {
        (uint i, bool b, uint j) = returnMany();

        // Values can be left out.
        (uint x, , uint y) = (4, 5, 6);

        return (i, b, j, x, y);
    }

    // Cannot use map for either input or output
    // 입력 또는 출력에 맵을 사용할 수 없습니다. 
    // Can use array for input
    // 입력에 배열을 사용할 수 있다.
    function arrayInput(uint[] memory _arr) public {}

    // Can use array for output
    // 출력에도 배열을 사용할 수 있다.
    uint[] public arr;

    function arrayOutput() public view returns (uint[] memory) {
        return arr;
    }
}

// Call function with key-value inputs
// 키 값 입력을 사용한 호출 함수
contract XYZ {
    function someFuncWithManyInputs(
        uint x,
        uint y,
        uint z,
        address a,
        bool b,
        string memory c
    ) public pure returns (uint) {}

    function callFunc() external pure returns (uint) {
        return someFuncWithManyInputs(1, 2, 3, address(0), true, "c");
    }

    function callFuncWithKeyValue() external pure returns (uint) {
        return
            someFuncWithManyInputs({a: address(0), b: true, c: "c", x: 1, y: 2, z: 3});
    }
}

 

'Programming Language > Solidity' 카테고리의 다른 글

Solidity - Error  (0) 2022.12.27
Solidity - View and Pure Functions  (0) 2022.12.27
Solidity - Data Locations  (0) 2022.12.25
Solidity - Structs  (0) 2022.12.25
Solidity - Enum  (0) 2022.12.25

관련글 더보기