区块链——Solidity智能合约基础实战(一)

                                              区块链——Solidity智能合约基础实战(一)

                                                              Pure与View的差别

首先学会使用区块链solidity在线编译工具Remix

在线编译器地址:

https://remix.ethereum.org

 

注意:现阶段的任何时候,打开编译器的第一步就是写上头文件pragma solidity ^0.4.0;

 

编写HelloWorld

pragma solidity ^0.5.0;

 

contract HelloWorld{

    string Myname = "马瑞鹏" ;

   

    function getName() public view returns(string memory)

    {

        return Myname;

    }  

}

 

在用Remix编译智能合约时,报错 TypeError: Data location must be "memory" for return parameter in function, but none was given.这是由于solidity 0.5.0版本的更新导致的,只需要在string后面加上memory就可以了。

 

由于视频中是^0.4.0所以我将编译器切换了版本号

区块链——Solidity智能合约基础实战(一)_第1张图片

并修改了代码:

pragma solidity ^0.4.0;

 

contract HelloWorld{

    string Myname = "马瑞鹏" ;

   

    function getName() public returns(string)

    {

        return Myname;

    }

       

}

疑问1:为什么视频中用的view而我的编译器却报错呢?

版本号不同,暂时解决的方法是拿constant代替(通过调试,发现0.4.17~0.4.26之间都是可以的)

表示的solidity支持多返回值,合约部署后返回一个参数 0,表示的是第0个返回的参数

区块链——Solidity智能合约基础实战(一)_第2张图片

编写changeName方法:

function changeName(string _newName) public

    {

        Myname = _newName;

    }

注意:调用此方法时输入的参数要用“ ”(英文的,不能是中文的)标识,不然的话调用此函数不生效,并且报错Json格式有异常

点击getName后,测试运行效果:

区块链——Solidity智能合约基础实战(一)_第3张图片

View和Pure的区别是是否消耗gas

区块链——Solidity智能合约基础实战(一)_第4张图片

你可能感兴趣的:(以太坊)