solidity中receive函数
时间: 2025-01-28 18:14:21 浏览: 20
在Solidity中,receive
函数是一个特殊的函数,用于处理合约接收以太币(Ether)时的逻辑。当合约接收到以太币且没有其他函数被调用时,receive
函数会被执行。以下是receive
函数的一些关键点:
- 无参数无返回值:
receive
函数不能有参数,也不能有返回值。 - 限制:一个合约中只能有一个
receive
函数。 - 调用方式:当合约接收到以太币且没有其他函数被调用时,
receive
函数会被自动调用。 - Gas限制:
receive
函数的执行有Gas限制,通常为2300 Gas。
以下是一个简单的示例:
pragma solidity ^0.8.0;
contract EtherReceiver {
event Received(address sender, uint256 amount);
// receive函数
receive() external payable {
emit Received(msg.sender, msg.value);
}
// 其他函数
function getBalance() public view returns (uint256) {
return address(this).balance;
}
}
在这个示例中,EtherReceiver
合约包含一个receive
函数。当合约接收到以太币时,receive
函数会被调用,并触发一个Received
事件,记录发送者地址和接收的以太币数量。
相关推荐

















