本篇文章给大家分享的是有关如何进行call、send和transfer的转账方式与比较,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
转账的3种方式
1 2 3
| address.transfer() address.send() address.call.value().gas()()
|
转账transfer
1 2 3 4 5 6 7 8 9 10
| function transfer(address _address) public payable{
_address.transfer(msg.value);
}
function transfer2(address _address) public payable{ _address.transfer(10 * 10**18);
}
|
转账send
1 2 3
| function transfer4(address _address) public payable { _address.send(10 ether); }
|
转账call
1 2 3
| function transfer5(address _address) public payable returns(bool){ return _address.call.value(10 ether)(); }
|
对比总结
1 2 3 4 5 6
| transfer与send相似,都为转账操作 transfer出错抛出异常 send、call出错不抛出异常,返回true或false tansfer相对send更安全 send、call即便转账失败也会执行其后的代码 慎用call函数转账,容易发生重入。
|
以上就是如何进行call、send和transfer的转账方式与比较,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注天达云行业资讯频道。