solidity--事件events的用法与说明

事件Events

Solidity 事件是EVM的日志功能之上的抽象。日志是不存在区块链上的,通过event可以记录链上发生的事情,并且通过日志的形式显示出来。

事件在合约中可被继承。当他们被调用时,会使参数被存储到交易的日志中 —— 一种区块链中的特殊数据结构。 这些日志与地址相关联,被并入区块链中,只要区块可以访问就一直存在(现在开始会被永久保存,在 Serenity 版本中可能会改动)。 日志和事件在合约内不可直接被访问(甚至是创建日志的合约也不能访问)。

事件允许记录到以太坊区块链。事件的一些用例包括:
        侦听事件和更新用户界面
        一种廉价的存储形式

下面是一个案例

contract Event{
    event Log(address indexed  sender, string message);//indexed可以理解为按照顺序排列的
    event AnotherLog(address indexed  sender01, string message01 , uint _i);
    event EmptyLog();

    function test() public {
        emit Log(msg.sender ,"Hello World");
        emit Log(msg.sender , "Hello Evm");
        emit  AnotherLog(msg.sender, "test  another" , 3);
        emit  EmptyLog();
    }
}

上述例子中,定义了三个事件Log,AnotherLog,EmptyLog

事件声明:
    最多可以索引 3 个参数。
    索引参数可帮助您按索引参数筛选日志

当函数test运行时,随即出发事件Log,AnotherLog,EmptyLog并将对应的值通过日志的形式输出出来。

下面是运行结果

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值