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});
}
}
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 |