Solidity-函数、函数修改器、事件(四)

前言

函数、函数修改器、事件。


一、函数修改器

函数修改器类似于装饰器,目的是在在不改动原函数的情况下修改函数的行为,减少代码量。

函数修改器(modifier)是不可以重载的。修改器的定义使用modifier,而不是Function的。

modifier onlyowner() {
        require(
            msg.sender == owner,
            "Only owner."
        );
        _;
}

onlyowner修改器,被修饰的函数会在“_”处执行。

函数修改器可以带参数。

二、事件 Event

 事件是能方便地调用以太坊虚拟机日志功能的接口。

事件的定义:event Transfer(address indexed from,address indexed to,uint amount);

事件的触发:emit Transfer(from,to,amount);

indexed是让evm将数据放入topic,不加则放入data,放入topic基础费用375,data每字节8.

事件是调用evm日志功能的接口,所以对应着evm字节码log0,log1...log4.其中log0不存topic(32字节),仅存数据。其中topic[0]是事件的摘要即keccak256() hash,这样就决定了最多可以有3个indexed(在使用log4的情况下)。

事件在合约中可被继承。当他们被调用时,会使参数被存储到交易的日志中 —— 一种区块链中的特殊数据结构。 这些日志与地址相关联,被并入区块链中,只要区块可以访问就一直存在

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值