function imp class 以太坊 str end reat sender
Solidity 的智能合约和面向对象语言中的类很相似。每个智能合约可以包含的元素有:state 变量的定义,方法,函数修改器,事件,结构类型以及枚举类型。同时合约可以继承于另外一个合约
Solidity 里的 state 变量表示的是永久的存储在合约的存储中。
- pragma solidity ^0.4.0;
- contract SimpleStorage {
- uintstoredData;// State variable
- // ...}
方法是合约里的可执行单元。方法可以被合约内部或是外部(另外一个合约)调用,对于其他合约访问权限,可以设置不同的可见性。
- pragma solidity ^0.4.0;
- contract SimpleAuction {
- function bid() payable { // Function
- // ...
- }
- }
方法修改器通过声明的方式来修改方法的语法。
- pragma solidity ^0.4.11;
- contract Purchase {
- address public seller;
- modifier onlySeller() { // Modifierrequire(msg.sender == seller);
- _;
- }
- function abort() onlySeller { // Modifier usage
- // ...
- }
- }
事件是作为以太坊虚拟机上的记录工具,提供了方便的接口,
- pragma solidity ^0.4.0;
- contract SimpleAuction {
- eventHighestBidIncreased(address bidder,uintamount);// Event
- function bid() payable {
- // ...HighestBidIncreased(msg.sender, msg.value);// Triggering event
- }
- }
结构是一种常用的数据结构,可以很方便的把多种变量组合在一起
- pragma solidity ^0.4.0;
- contract Ballot {
- structVoter {// Struct
- uint weight;
- bool voted;
- address delegate;
- uint vote;
- }
- }
枚举用于创建一组有限的值的集合
- pragma solidity ^ 0.4.0;
- contract Purchase {
- enum State {
- Created,
- Locked,
- Inactive
- } // Enum
- }
Solidity 编程 四 之 智能合约的结构
来源: http://www.bubuko.com/infodetail-2142965.html