• Solidity构造函数和析构函数


    构造函数:当方法名字和合约名字相同的时候,这个就是构造函数,构造函数在合约对象创建之后执行的

    contract  Person{
        function Peron(){//构造函数Person
            ...
    }
    }

    析构函数:selfdestruct

    selfdestruct(msg.sender)//析构函数
    pragma  solidity  ^0.4.13;//首先第一个是版本的申明
    /*
    pragma;版本申明
    solidity:开发语言
    0.4.13:当前合约的版本,0。4代表的是主版本,.13代表的修复bug的升级版
    ^代表的是向上兼容的意思,0.4.13`0.4.9可以对我们当前的代码进行编译
    */
    
    //contrace  person类似  class person  extends  contract
    contract Person {
      uint  _height;//属性名加下划线,代表的是一种规范,编译代码的时候的一种规范
      uint  _age;//年龄,无符号整形
    
    
    
      //当方法名和合约名相同时就属于构造函数,在创建对象的时候,构造函数会最先被调用
      function   Person() {
        _height=1080;
        _age=20;
        address  _owner;//合约的拥有者
      }
    
      //标准的形式来写,驼峰的形式来写setHight
      function setHight(uint  height) {
          _height=height;
          _owner=msg.sender;
      }
      //度去_height,如果后面不加上constant的话,那么要调用call方法才可以,如果加上了call方法的话,那么就不需要加上call方法就可以取出来
      function  gteHeight()  constant returns (uint) {//返回的是什么类型,后面不用加什么东西
        return   _height;//return,_height加不加上括号都可以
      }
    
    
      function kill()  {//如果后面加上constant的时候,刚创建就会把他销毁掉了
        if (_owner==msg.sender){
            //析构函数
          selfdestruct(msg.sender);//msg代表的是全局,selfsdestruct这个是析构函数
        }
      }
    
      function  owner()  constant  returns (address) {//返回的是地址的类型
        return   _owner;
    
      }
    }
    
    
    //每一个合约都有一个地址
    //在执行这个合约对象的时候,会先去创建判断这些带constant的方法

    Solidity在线编辑工具:https://remix.ethereum.org/

    从这里可以看到这个合约的详细信息:

    合约地址:当合约内容相同的饿时候,那么这个合约地址也是相同的,0x692a70d2e424a56d2c6c27aa97d1a86395877b3a

    cost:创建这个合约所消耗的gas,不管创建合约对象或者是执行合约里面的方法的时候都会消耗gas值

    ABI:可以去https://www.bejson.com/转化为JOSN的格式

  • 相关阅读:
    Expected an assignment or function call and instead saw an expression
    ES6 中Object 的动态Key
    dotnet ef 无法执行,因为找不到指定的命令或文件
    Vue中的vfor
    使用TS开发Vue项目引入json文件报错处理
    JavaScript 防抖和节流
    MacOs 10.15.6 install pyodbc Tank
    一维数组转二维数组
    根据条件过滤目录树(子级匹配也要保留父级)
    跨域测试
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/10663951.html
Copyright © 2020-2023  润新知