💡
💡
💡
💡
Solidity智能合约开发
Search…
💡
💡
💡
💡
Solidity智能合约开发
前言
1.1 智能合约简介
1.2 以太坊虚拟机简介
1.3 智能合约的编写与调试
1.4 智能合约的部署与执行
1.5 智能合约如何与其他IT系统交互
1.6 Solidity语言教程
1.6.1 典型Solidity源文件包含的组成部分
1.6.2 智能合约的组成部分
1.6.3 类型介绍
1.6.4 单位及全局变量
1.6.5 表达式及控制结构
1.6.6 Solidity中的智能合约
1.6.7 Solidity汇编语言
1.6.8 Solidity编码风格
1.6.9 Solidity V0.5.0版本与之前版本的显著区别
1.6.10 Solidity V0.6.0版本与之前版本的显著区别
1.6.11 课外参考
Powered By
GitBook
1.6.2 智能合约的组成部分
在Solidity中,智能合约很类似面向对象编程语言中的类。每个智能合约包含状态变量,函数,函数修饰符,事件,结构类型,枚举类型等的声明。一个智能合约还可以继承自其它智能合约。
1.6.2.1 状态变量(State Variables)
状态变量永久存储在智能合约的存储中。如下所示:
pragma solidity ^0.4.0;
contract SimpleStorage {
uint storedData; // 状态变量
// ...
}
1.6.2.2 函数(Functions)
函数是合约中一个可执行的代码单元。
pragma solidity ^0.4.0;
contract SimpleAuction {
function bid() public payable { // 函数
// ...
}
}
函数可以从内部或外部被调用,函数有不同的可见性。
1.6.2.3 函数修饰符(Function Modifiers)
函数修饰符可用于改变函数的语义,其用法类似函数的定义,如下所示:
pragma solidity ^0.4.0;
contract Purchase {
address public seller;
modifier onlySeller() { // 函数修饰符
require(
msg.sender == seller,
"Only seller can call this."
);
_;
}
function abort() public onlySeller { // Modifier usage
// ...
}
}
1.6.2.4 事件(Events)
事件是以太坊虚拟机的日志接口,可用于记录系统信息。
pragma solidity ^0.4.0;
contract SimpleAuction {
event HighestBidIncreased(address bidder, uint amount); // 事件
function bid() public payable {
// ...
emit HighestBidIncreased(msg.sender, msg.value); // 触发事件
}
}
1.6.2.5 结构体类型(Struct Types)
结构体是用户自定义的数据类型,可包含各种类型的数据,如下所示:
pragma solidity ^0.4.0;
contract Ballot {
struct Voter { // 结构类型
uint weight;
bool voted;
address delegate;
uint vote;
}
}
1.6.2.6 枚举类型(Enum Types)
枚举类型可被用于定义一组有限常量的集合。
pragma solidity ^0.4.0;
contract Purchase {
enum State { Created, Locked, Inactive } // 枚举类型
}
在下面的章节中我们将分别就这些具体的类型作详细介绍。
1.6 Solidity语言教程 - Previous
1.6.1 典型Solidity源文件包含的组成部分
Next - 1.6 Solidity语言教程
1.6.3 类型介绍
Last modified
2yr ago
Copy link
Contents
1.6.2.1 状态变量(State Variables)
1.6.2.2 函数(Functions)
1.6.2.3 函数修饰符(Function Modifiers)
1.6.2.4 事件(Events)
1.6.2.5 结构体类型(Struct Types)
1.6.2.6 枚举类型(Enum Types)