1. 程式人生 > >目前無法從修改區塊鏈的函式返回值

目前無法從修改區塊鏈的函式返回值

參考文件

當呼叫一個合約的方法。這個方法想返回值。有2種情況:
1、如果這個方法中修改了合約資料。那隻能通過event返回值。
2、如果這個方法沒有修改區塊資料,那直接可以返回值。

例子

pragma solidity ^0.4.25;

contract Assert{
    
}
contract TestReturn {
    
    Assert sig ;
    
    function check() public returns(uint256) {
        sig = new Assert();
      return  uint256(6);
    }
    
    
}

呼叫上面的check()方法就不能返回值。因為修改了區塊資料。

pragma solidity ^0.4.25;

contract Assert{
    
}
contract TestReturn {
    
    Assert sig ;
    event CreateAssert(Assert _sig,uint256 id);
    
    function check() public returns(uint256) {
        sig = new Assert();
        emit CreateAssert(sig,uint256(6));
    }
    
    
}

所以寫程式碼的時候,在修改區塊資料的方法中,就沒必要return資料了。