天天看點

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

在學習solidity過程中碰到一個小細節的問題,這個問題不是很難,但是網上找了許多資料也未能找到相關的解決辦法,今天偶然看了一篇文章解決了這個問題。

錯誤如下:

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

編寫的代碼如下:

//指定編譯器版本,版本辨別符
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;
    }
}      
browser/payable.sol:14:34: Error: Expected token LBrace got ‘View‘ function getMessage()

因為我想在運作合約的時候點選函數名稱就可以顯示結果,是以使用了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;      

再次運作,結果如下:

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

繼續閱讀