solidity一些内置的常用函数和关键字:
1. msg.sender
-
描述:
msg.sender
是全局变量,代表当前调用者的地址,即谁发起了当前的合约调用。 -
**功能:**用于识别调用者的身份,通常用于权限控制。
-
示例:
contract MyContract { address public owner; constructor() { owner = msg.sender; // 将合约部署者设置为合约拥有者 } function isOwner() public view returns (bool) { return msg.sender == owner; } }
-
详细说明:
msg.sender
在合约调用链中非常重要,用于识别调用者的身份,通常用于权限控制。
2. msg.value
-
描述:
msg.value
是全局变量,表示在合约调用中发送的以太币数量(单位为wei
)。 -
示例:
contract MyContract { function deposit() public payable { // 支付函数 require(msg.value > 0, "Must send some ether"); } }
-
详细说明: 当调用函数时,可以通过
msg.value
获取发送的以太币数量,常用于支付功能或资金转账。
3. block.timestamp
-
描述:
block.timestamp
是当前区块的时间戳,以UNIX时间表示(即自1970年1月1日以来的秒数)。 -
示例:
contract MyContract { uint public creationTime; // 区块创建时间 constructor() { creationTime = block.timestamp; // 用时间戳赋值 } function timeSinceCreation() public view returns (uint) { // 计算当前区块的时间戳与区块创建时间的间隔 return block.timestamp - creationTime; } }
-
详细说明:
block.timestamp
常用于合约中的时间相关操作,例如检查某个操作是否超时。
4. address.balance
-
描述:
address.balance
是一个地址类型的变量,用于获取指定地址的以太币余额(单位为wei
)。 -
示例: