Skip to content

Latest commit

 

History

History
48 lines (41 loc) · 1.69 KB

File metadata and controls

48 lines (41 loc) · 1.69 KB

函数

函数的语法形式:

function <function name>(<parameter types>) {internal|external|public|private} [pure|view|payable] [returns (<return types>)]

  • 函数必须明确指定可见性,状态变量可不写默认可见性是internal
  • pure代表不需要读或者写链上的数据
  • view代表需要读取链上的数据
  • pure和view都不会消耗gas费,但是非pure/view的函数调用申明了pure/view的函数需要付gas

函数输出

return和returns

  • returns跟在函数名后面,用于声明返回的变量类型及变量名。
  • return用于函数主体中,返回指定的变量。
// 返回多个变量
function returnMultiple() public pure returns(uint256, bool, uint256[3] memory){
    return(1, true, [uint256(1),2,5]);
}

命名式返回

我们可以在 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];
}

解构式赋值

Solidity 支持使用解构式赋值规则来读取函数的全部或部分返回值。

  • 读取所有返回值:声明变量,然后将要赋值的变量用,隔开,按顺序排列。

    uint256 _number;
    bool _bool;
    uint256[3] memory _array;
    (_number, _bool, _array) = returnNamed();
    
  • 读取部分返回值:声明要读取的返回值对应的变量,不读取的留空。在下面的代码中,我们只读取_bool,而不读取返回的_number和_array:

    (, _bool2, ) = returnNamed();