Solidity 函数返回值

Solidity 函数的返回值可以使用名字,也可以采用匿名方式。

Solidity 函数的返回值可以通过名字赋值,也可以使用 return 返回。

Solidity 函数支持多个返回值。

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

contract funreturn{

    //返回值可以有名字
    function returnTest()public view returns(uint mul){
        uint a= 10;
        return a;
    }

    //可以直接为返回值赋值
    function returnTest2()public view returns(uint mul){
        mul = 10;
    }
    //当给返回值赋值后,并且有个return,以最后的return为主
    function returnTest3()public view returns(uint mul){
        uint a= 10;
        mul = 100;
        return a;
    }

    //返回常量,自动匹配
     function returnTest4()public view returns(uint mul){
        uint a= 10;
        mul = 100;
        return 1;
    }

    //函数可以有多个返回值,多返回值赋值
     function returnTest5(uint a,uint b) public view returns(uint add,uint mul){
       add = a+b;
       mul = a*b;
    }

    //函数可以有多返回值,返回return(param list)
    function returnTest6(uint a,uint b) public view returns(uint add,uint mul){
       return(a+b,a*b);
    }

    //交换变量的值
    function returnTest7(uint a,uint b) public view returns(uint a1,uint b1){
       return (b,a);
    }
}

Solidity 函数多返回值的调用方法。

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

contract funreturn{

    // 定义多返回值函数
    function returnFunc() private pure returns(uint a, uint b){
        return (1, 2);
    }

    // 调用多返回值函数
    function callFunc()public pure returns(uint, uint){
       (uint r1, uint r2) = returnFunc();
       return (r1, r2);
    }

    // 调用多返回值函数,先定义变量
    function callFunc()public pure returns(uint, uint){
       uint r1;
       uint r2;
       (r1, r2) = returnFunc();
       return (r1, r2);
    }

   // 调用多返回值函数,但只取第一个返回值
    function callFunc()public pure returns(uint, uint){
       (uint r1, ) = returnFunc();
       return (r1, 100);
    }
}

solidity pure函数,也就是纯函数,是指函数不会读取或修改状态。换言之,solidity pure函数不会操作链上数据。如果函数中存在以下语句,则被视为读取状态,编译器将抛出警告。读取状态变量。访问 ...