browser/payable.sol:14:34: Error: Expected token LBrace got ‘View‘ function getMessage()

本文解决了一个关于Solidity版本与Remix Ethereum IDE兼容性的问题,详细介绍了如何通过调整Solidity版本来修复编译错误,确保智能合约正常运行。

在学习solidity过程中碰到一个小细节的问题,这个问题不是很难,但是网上找了许多资料也未能找到相关的解决办法,今天偶然看了一篇文章解决了这个问题。

错误如下:

编写的代码如下:

//指定编译器版本,版本标识符
pragma solidity ^0.4.0;


//关键字 contract 跟java的class一样  智能合约是Inbox      
contract Inbox{
    //string 是数据类型,message是成员变量,在整个智能合约生命周期都可以访问
    //public 是访问修饰符,是storage类型的变量,成员变量和是全局变量
    string public message = "zsan ";



    //view是修饰符,表示该函数仅读取成员变量,不做修改
    function getMessage() public view returns(string) {
        return message;
    }
}

因为我想在运行合约的时候点击函数名称就可以显示结果,所以使用了view关键字来显示,但是每次运行都是出现这个错误,网上看别人都能完美运行但是自己却总是运行不成功。

【分析原因】

网上大多数教程是2017/2018的,现在是2020年经过2年的发展Remix-Ethereum IDE 版本更新了很多,所以经过我自己的测试0.4.0到0.4.15的版本不兼容了,所以我们只需要更换下版本号为 0.4.16(>=0.4.16就可以)

所以我们修改下代码,将版本号改为0.4.16

//指定编译器版本,版本标识符
pragma solidity ^0.4.16;

再次运行,结果如下:

点击Run运行合约:

达到我们预期的结果了,所以纠结我很久的小问题终于解决了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值