参考文档:Solidity 0.5 address payable和address的区别是什么? | 学习软件编程
测试环境:以太坊POA联盟链 + remix
solidity 0.5将地址类型细分为address和address payable的目的在于,它有助于强制智能合约开发人员认真考虑一个地址是否应当接收以太币,如果该地址根本不需要接收以太币,那么就应当使用address类型。当地址被声明为address 类型后,如果开发者试图向该地址转入以太币,就会导致编译时类型错误。
address和address payable类型都用来存储160位的以太坊地址,两者的区别仅在编译时存在,在编译后的合约代码中就没有区别了 -- 也就是说,引入地址类型细分的唯一目的就是帮助开发者在编译期理清一个地址的实际用途。
address payable和address类型的变量都表示以太坊地址,都可以使用底层的.call()方法。 从字面意思看,address payable表示可用于支付的地址,因此在address payable
本文介绍了Solidity 0.5中新增的address payable类型,旨在区分是否能接收以太币的地址。通过举例和代码示例,展示了address payable与address之间的转换方法,以及它们在智能合约中的应用场景,如自毁函数和转账操作。同时,指出了在0.5版本后编译时可能出现的问题及解决办法。
订阅专栏 解锁全文
8656

被折叠的 条评论
为什么被折叠?



