以太坊Solidity语言的Receive函数和Fallback回退函数详解

Solidity语言中关于回退函数的定义:

  • 回退函数是一个不接受任何参数也不返回任何值的特殊函数;
  • 如果在对合约的调用中,没有其它函数与给定的函数标识符匹配时,回退函数会被调用;
  • 每当合约接收到以太币,且没有 receive 函数时,回退函数会被调用;
  • 一个合约中最多可以有一个回退函数。

Receive函数

Receive是一个接收以太币函数,一个合约中最多可以有一个 receive 函数。在对合约转账时会执行 receive 函数,例如通过 transfer()send()call()。如果 receive 函数不存在,那么 fallback 回退函数会被调用。receive 函数的声明语法如下:

receive () external payable { ... }

Receive函数没有 function 关键字,没有参数也没有返回值,且必须是 external 可见性(允许外部合约调用)并具有 payable 可支付属性。

Fallback函数

回退函数的声明语法如下:

fallback () external [payable]

其中:

  • 回退函数没有 function 关键字;
  • 回退函数必须是 external 可见性,即允许被外部合约调用;
  • 如果回退函数需要接收以太币,则必须标记为 payable
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

StevenX5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值