1、状态变量:状态变量被永久保存在区块链中。所以在你的合约中创建动态数组来保存成结构的数据是非常有意义的
2、Solidity 支持两种数组: 静态 数组和动态 数组:,也可以创建一个 结构体类型的数组 Peo[] people;创建公共数组:Person[] public people;
3、 私有 / 公共函数 在函数名字后面使用关键字 private 即可。和函数的参数类似,私有函数的名字用(_)起始
4、函数的更多属性: 上面的函数实际上没有改变 Solidity 里的状态,即,它没有改变任何值或者写任何东西。
这种情况下我们可以把函数定义为 view, 意味着它只能读取数据不能更改数据:
pure 函数, 表明这个函数甚至都不访问应用里的数据: 这个函数甚至都不读取应用里的状态 — 它的返回值完全取决于它的输入参数,在这种情况下我们把函数定义为 pure.
5、Ethereum 内部有一个散列函数keccak256,它用了SHA3版本。一个散列函数基本上就是把一个字符串转换为一个256位的16进制数字。字符串的一个微小变化会引起散列数据极大变化。
6、事件 是合约和区块链通讯的一种机制。你的前端应用“监听”某些事件,并做出反应。
7、在 Solidity 中,有一些全局变量可以被所有函数调用。 其中一个就是 msg.sender,它指的是当前调用者(或智能合约)的 address。
8、储数据至映射的方法和将数据存储在数组相似 favoriteNumber[msg.sender] = 12344;
9、在 Solidity 中,有一些全局变量可以被所有函数调用。 其中一个就是 msg.sender,它指的是当前调用者(或智能合约)的 address。
注意:在 Solidity 中,功能执行始终需要从外部调用者开始。 一个合约只会在区块链上什么也不做,除非有人调用其中的函数。所以 msg.sender总是存在的。
使用 msg.sender 很安全,因为它具有以太坊区块链的安全保障 —— 除非窃取与以太坊地址相关联的私钥,否则是没有办法修改其他人的数据的。
10、
网友评论