区块链开发学习第六章:Solidity基本语法(持续更新)

一、事件(event与emit)

Solidity中,要定义事件,可以使用event关键字(在用法上类似于function关键字)。然后可以在函数中使用emit关键字触发事件。

按照惯例,事件名称以大写字母开头,以区别于函数。

之前是没有emit的,是用大写字母开头用以标识触发事件,但是经常容易与方法混淆,之前著名的以太坊硬分叉以太经典的DAO事件就是由这个导致的,所以就有了emit

// 声明一个事件
event Deposit(address indexed _from, bytes32 indexed _id, uint _value);

// 触发事件
emit Deposit(msg.sender, _id, msg.value);

参考:https://www.qikegu.com/docs/5004

 

二、引用类型(memory与storage)

  • memory(值类型)
  • storage(引用类型)
 storagememory
储存的变量 函数外部声明的变量,即状态变量 函数内部声明的变量,即局部变量
存储的位置 区块链上,永久存在 内存中,运行完之后销毁
运行的位置 区块链网络上 单个节点
传递属性 指针传递 值传递

 一般来说就是:在函数内部定义的,需要添加memory关键字,比如这样:

 

 

 

如果有学习计划的童鞋,可以加我QQ一起交流:

posted @ 2021-11-13 23:49  请叫我胖子  阅读(1019)  评论(0编辑  收藏  举报