【Solidity】2.合约的结构体
来源:互联网 发布:lol免费充点卷软件. 编辑:程序博客网 时间:2024/06/05 08:41
索引
- 【Solidity】1.一个Solidity源文件的布局
- 【Solidity】2.合约的结构体
- 【Solidity】3.类型
- 【Solidity】4.单位和全局可变量
- 【Solidity】5.表达式和控制结构
- 【Solidity】6. 合约
- 【Solidity】7. 部件
- 【Solidity】8. 杂项
2 合约的结构体
Solidity的合约类似于面向对象语言的类。 每个合同都可以包含State Variables
, Functions
, Function Modifiers
, Events
, Structs Types
和 Enum Types
的声明。 此外,合约可以继承其他合约。
状态变量
状态变量是永久存储在合约存储中的值。
pragma solidity ^0.4.0;contract SimpleStorage { uint storedData; // 状态变量 // ...}
请参阅有关状态变量类型的“类型”部分,“可见性”和“获取器”,以获取可见性的可能选择。
函数 Functions
函数是一个代码合同中的可执行单元。
pragma solidity ^0.4.0;contract SimpleAuction { function bid() payable { // 函数 // ... }}
函数调用可以内部或外部发生,均有不同程度的知名度对其他合同(可见性和getter)的。
函数修饰符 Function Modifiers
函数修饰符可用于以声明方式修改函数的语义(参见“契约”部分中的函数修饰符)。
pragma solidity ^0.4.11;contract Purchase { address public seller; modifier onlySeller() { // Modifier require(msg.sender == seller); _; } function abort() onlySeller { // 调用Modifier // ... }}
事件
事件是与EVM日志工具便捷接口。
pragma solidity ^0.4.0;contract SimpleAuction { event HighestBidIncreased(address bidder, uint amount); // 事件 function bid() payable { // ... HighestBidIncreased(msg.sender, msg.value); // 触发事件 }}
请参阅合约中的事件部分,了解有关事件如何声明和可以在dapp内使用的信息。
结构类型
Structs是可以分组几个变量的自定义类型(请参阅类型部分中的结构体)。
pragma solidity ^0.4.0;contract Ballot { struct Voter { // 结构体 uint weight; bool voted; address delegate; uint vote; }}
枚举类型
枚举可用于创建具有有限值集的自定义类型(请参阅类型部分中的枚举)。
pragma solidity ^0.4.0;contract Purchase { enum State { Created, Locked, Inactive } // 枚举}
阅读全文
0 0
- 【Solidity】2.合约的结构体
- 智能合约编程语言solidity的特性
- Solidity中文文档----源文件布局以及合约结构
- Solidity 结构体Structs
- 【Solidity】6. 合约
- 【智能合约】Solidity
- 以太坊智能合约 Solidity 的常用数据类型介绍
- 以太坊代币开发智能合约solidity的奥秘
- 第一章 Solidity源文件的结构
- 以太坊智能合约solidity
- 学习solidity的一个简单智能合约(1)——投票
- 学习solidity的一个简单智能合约(2)——对冲
- 『0004』- 基于Ethereum Wallet的Solidity HelloWorld智能合约(Smart Contract)
- solidity投票合约在bcos上的部署及解析(一)
- solidity投票合约在bcos上的部署及解析(二)
- solidity投票合约在bcos上的部署及解析(三)
- 使用 Browser-solidity 在 Go-Ethereum1.7.2 上进行简单的智能合约部署
- Solidity 文档--第一章:智能合约入门
- 297. Serialize and Deserialize Binary Tree
- 通过byobu使用多个命令终端
- LeetCode 485. Max Consecutive Ones
- AndroidStudio导入项目通用流程
- 图形数据库 Neo4j 开发实战
- 【Solidity】2.合约的结构体
- log4j日志文件的使用及log4j日志文件失效原因分析
- 朴素贝叶斯
- Android:你要的WebView与 JS 交互方式 都在这里了
- 如何在数据库字段上面加注释
- 线性回归介绍及分别使用最小二乘法和梯度下降法对线性回归C++实现
- 第一天
- IP问问区县级别IP地址库---使用帮助(下篇)
- 解决easyui和bootstrap兼容问题