美文网首页
Solidity学习第三节 简单理解合约基本结构

Solidity学习第三节 简单理解合约基本结构

作者: 天之皓月 | 来源:发表于2018-11-27 18:35 被阅读22次

本章节简单介绍一下合约基本结构,不足之处请指出,因为我也是刚入行小白,相互学习,共同进步

1.合约的基本结构有哪些

2.合约的基本结构中的简介

3.一些实例Demo

  • 一:合约的基本结构有哪些

在Solidity语言中,合约类似于面向对象编程语言中的类。每个合约中合约包含状态变量(State Variables),函数(Functions),函数修饰器(Function Modifiers),事件(Events),结构类型(Structs Types),和枚举类型(Enum types)的声明,并且合约可以从其他的合约中继承。

  • 1>:状态变量(State Variables)

状态变量是永久的存储在合约存储中的值

pragma solidity^0.4.17

contract ches{
    uint userid; //状态变量
}
  • 2>:函数(Functions)
  1. 函数是合约中代码的可执行单元。
    2.函数调用可以发生在合约的内部(Internal)或者外部(External),并且函数对其他的合约有不同程度的可见性(Visibility)访问控制(Accessors)
pragma solidity ^0.4.17;

contract ches{

    //简单的函数
    function  add(uint a, uint b) return(uint c){
        c = a / b;
    }
}
  • 3>:函数修饰器(Function Modifiers)

函数修饰器可以用来以声明的方式改良函数语义(简单来说就是用于增强语义)

pragma solidity ^0.4.22;

contract Purchase {
    address public seller;

    modifier onlySeller() { // 修饰器
        require(
            msg.sender == seller,
            "Only seller can call this."
        );
        _;
    }

    function abort() public onlySeller { // Modifier usage
        // ...
    }
}
  • 4>:事件(Events)

事件是能方便的调用以太坊虚拟机日志功能的接口。用于获取当前发送的事件。

pragma solidity ^0.4.21;
contract ches {
    event chesd(address bidder, uint amount); // 事件

    function bid() public payable {
        emit chesd(msg.sender, msg.value); // 触发事件
    }
}
  • 5> :结构类型(Structs Types)

结构类型是自定义的将几个变量组合在一起形成的类型。

pragma solidity ^0.4.17;

contract Ballot {
    struct Voter { // 结构
        uint userid;
        bool voted;
        address delegate;
        uint adid;
    }
}
  • 6>:枚举类型(Enum Types)

枚举可以用来创建由一定数量的'常量值'构成的自定义类型(特殊的自定义的类型)

pragma solidity ^0.4.0;

contract Home {
    enum Switch{On,Off}
}

二:参考文档

  1. Solidity中文文档
  2. 区块链技术博客

相关文章

网友评论

      本文标题:Solidity学习第三节 简单理解合约基本结构

      本文链接:https://www.haomeiwen.com/subject/xqerqqtx.html