zoukankan      html  css  js  c++  java
  • Solidity函数view,pure,constant的用法

    函数访问权限:public,external,private,internal

    //子类可以得到父类下面的方法,父类用了public,external的话

    pragma solidity ^0.5.7;
    
    
    contract Animal{
    function tets1() pure public returns(uint){
    //如果是public的话,外部是可以访问的,external外部也是可以访问的,private,interna只能是内部访问
    return 100;
    }
    }
    
    contract Cat is Animal{
    
    }


    //internal,private是只鞥是自己的内部使用,子合约是不能继承他的
    //exteral,public子合约是可以继承的

    constant:

    如果加了constant的话,就不用调用call方法来获取值,比如在终端的时候不用调用这个call方法,直接可以打印出来了,可以返回变量的值

    uint  public  n=100;

    function speed() constant returns(uint){
    return n;
    }

    public:

    说明是外部的话就可以调用的,在合约里面是可以调用这个值的string   name ,string  public  name,后者在合约里面是有显示的

    view:

    既没有返回什么状态变量的值,也没有什么存粹的值的话(return 10,'hello'这些的)
    比如返回return msg.render就可以使用view


    pure:

    就是很纯粹的意思,就是具体返回什么值回来,不是变量
    如果下面是return p(带有状态变量的值)的话,不能用这个pure,得用constant,如果是return 12具体的某个数值的话,就可以用pure

    pragma solidity  ^0.5.7;
    
    contract  test{
      //属性
    uint p; address _owner;
      //构造函数 function car()
    public{ p=100; _owner=msg.sender; } //public的话可以外部调用 function get() public returns(uint){ return p; } //view,当不返回存粹的值或者是变量的时候,比如msg.sender使用 function get1() view public returns(address){ return msg.sender } //pure,返回存粹的值使用,123,'hello' function get2() pure public returns(uint){ return 123 } //返回带有状态变量的值,_owner function get3() constant public returns(address){ return _owner } }
  • 相关阅读:
    通过Powershell开启RDP
    映射网络驱动器
    简易图书管理系统
    使用IDEA快速创建Spring Boot项目
    oracle11g安装步骤详细图文教程
    使用JDOM创建XML文档
    使用JDOM解析XML文档
    HTML+CSS之金立官网部分实现
    webstorm2019安装与使用详细教程
    第二章 JavaScript基础指令
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/10657858.html
Copyright © 2011-2022 走看看