美文网首页
Solidity语言学习(一)- 源文件结构与合约结构

Solidity语言学习(一)- 源文件结构与合约结构

作者: 想成为dalao的菜鸡 | 来源:发表于2020-03-27 20:43 被阅读0次

    Solidity源文件结构

    solidity源文件以*.sol命名,源文件内包含 合约定义导入指令版本杂注

    版本杂注

    版本杂注说明该代码是针对于某个版本的编译器的,以免未来编译器版本更新引起不必要的错误。版本杂注卸载源文件的第一行例如:pragma solidity ^0.4.0 ,说明该原文件只能被不低于0.4.0版本,低于0.5.0版本的编译器编译。

    导入指令

    solidity可以通过指令:import  “目标文件路径”   来导入其他源文件内容。目标文件路径若为" ./ "(当前文件夹下)或 " ../ "(父文件夹)开头,则表示是相对文件路径。

    合约定义

    即我们编写的智能合约,里面含有编写的代码。

    例如:

    contract  MyContract{

     // 合约代码

    }

    合约结构

    solidity中的合约类似于面对对象编程语言中的类。一个合约中可以包含状态变量函数函数修饰器事件结构类型枚举类型的声明,并且合约可以从其他合约处继承。

    状态变量

    状态变量是永久地存储再合约中的值,相当于类中的实例变量。声明方式:变量类型 变量名 (= 变量值)    --> uint variable = 1;

    函数

    函数是合约中的可执行单元,可通过调用函数的方式来执行合约中的代码(与面对对象语言不同,solidity中没有main函数,在没人调用函数时合约中的代码是不会执行的)

    声明方式:

     function  函数名(变量类型 变量名,) 函数对外可见性  函数性质  函数修饰器  returns (返回值类型1 返回值1 ,返回值类型2 返回值2){

    //函数代码

    return 返回的值

    }

    函数的调用可以发生在合约的内部和外部。

    函数修饰器

    函数修饰器是一种用来给函数添加一些功能的工具(可以类似看做一种特殊函数),函数修饰器的代码会在调用函数时,在函数代码执行之前执行。

    声明方式:

    modifier 修饰器名字(){

    //修饰器内容,一般是一个判断语句,来约束函数

    _;

    }

    事件

    事件是能方便调用以太坊虚拟日志功能的接口

    声明方式:

    //

    结构类型:

    结构类型是将几个不同类型的变量打包在一起的容器(相当于结构体)

    定义  

    struct 结构体名字{

    变量类型1 变量名字1 ;变量类型2 变量名字2;****

    变量类型n  变量名字n;

    }

    枚举类型

    如果说结构类型是由一系列变量构成的自定义类型,那么枚举类型就是由一定数量的常量构成的自定义类型

    定义方式: enum 枚举名字 {  常量1,常量2 , ,常量n    }

    相关文章

      网友评论

          本文标题:Solidity语言学习(一)- 源文件结构与合约结构

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