目前無法從修改區塊鏈的函式返回值
阿新 • • 發佈:2018-12-14
參考文件:
當呼叫一個合約的方法。這個方法想返回值。有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資料了。