【solidity入门】4. 函数输出 Return

solidity的函数输出包括:

  1. 返回多种变量
  2. 命名式返回
  3. 利用解构式赋值读取全部或部分返回值

返回值return和returns

  1. 是solidity中与函数输出相关的两个关键字
  2. 区别:

——returns加在函数名后面,用于声明返回的变量类型及变量名

——return用于函数主体中返回指定的变量

// 返回多个变量
function returnMultiple() public pure returns(uint256, bool, uint256[3] memory){
    return(1, ture, [uint256(1),2,5]);
}
// 这段代码声明了returnMultiple()函数将有多个输出
// 这些输出是:returns(uint256, bool, uint256[3] memory)
// 接着在函数主体中用return(1, ture, [uint256(1),2,5])确定了返回值

命名式返回

  1. 可以在returns中表明返回变量的名称,solidity就会自动给这些变量初始化,并自动返回这些函数的值,不需要加return
// 命名式返回
function returnNamed() public pure returns(uint256 _number, bool _bool, uint256[3] memory _array){
    _number = 2;
    _bool = false;
    _array = [uint256(3),2,1];
}
// returns(uint256 _number, bool _bool, uint256[3] memory _array)声明了返回变量类型与变量名
// 这样,主体中只需要给变量_number, _bool, _array赋值就可以自动返回

     2. 当然,也可以在命名式返回中用return返回变量

// 命名式返回,依然支持return
function returnNamed2() public pure returns(uint256 _number, bool _bool, uint256[3] memory _array){
    return(1, ture, [uint256(1),2,5]);
}

解构式赋值

  1. solidity使用解构式赋值的规则,支持读取函数的全部或部分返回值
  2. 读取全部返回值:

——声明变量(前三行),并将要赋值的变量用“,”隔开(第四行),按顺序排列

uint256 _number;
bool _bool;
uint256[3] memory _array;
(number, -bool, _array) = returnNamed();

     3. 读取部分返回值:

——声明要读取的返回值对应的变量,不读取的留空

// 下面代码,只读取_bool,不读取返回的_number和_array
(, _bool2, ) = returnNamed();

在remix上验证

部署合约后,可以在“Deploy”橙色按钮下方的”deployed contracts”中观察三种返回方式的结果

猜你喜欢

转载自blog.csdn.net/weixin_44792616/article/details/127437051
今日推荐