forked from AmazingAng/WTF-Solidity
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Return.sol
38 lines (32 loc) · 1.15 KB
/
Return.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
// Retorna várias variáveis
// Retorno nomeado
// Atribuição por desestruturação
contract Return {
// Retorna várias variáveis
function returnMultiple() public pure returns(uint256, bool, uint256[3] memory){
return(1, true, [uint256(1),2,5]);
}
// Retorno nomeado
function returnNamed() public pure returns(uint256 _number, bool _bool, uint256[3] memory _array){
_number = 2;
_bool = false;
_array = [uint256(3),2,1];
}
// Retorno nomeado, ainda suporta return
function returnNamed2() public pure returns(uint256 _number, bool _bool, uint256[3] memory _array){
return(1, true, [uint256(1),2,5]);
}
// Ler o valor de retorno, atribuição por desestruturação
function readReturn() public pure{
// Ler todos os valores de retorno
uint256 _number;
bool _bool;
bool _bool2;
uint256[3] memory _array;
(_number, _bool, _array) = returnNamed();
// Ler parte dos valores de retorno, atribuição por desestruturação
(, _bool2, ) = returnNamed();
}
}