Solidity 小白教程:19. 接收 ETH receive 和 fallback
Solidity支持两种特殊的回调函数,receive()和fallback(),他们主要在两种情况下被使用:
- 接收 ETH
- 处理合约中不存在的函数调用(代理合约 proxy contract)
注意 ⚠️:在 solidity 0.6.x 版本之前,语法上只有 fallback() 函数,用来接收用户发送的 ETH 时调用以及在被调用函数签名没有匹配到时,来调用。 0.6 版本之后,solidity 才将 fallback() 函数拆分成 receive() 和 fallback() 两个函数。
我们这一讲主要讲接收 ETH 的情况。
接收 ETH 函数 receive
receive()只用于处理接收ETH。一个合约最多有一个receive()函数,声明方式与一般函数不一样,不需要function关键字:receive() external payable { … }。receive()函数不能有任何的参数,不能返回任何值,必须包含external和payable