代码之家  ›  专栏  ›  技术社区  ›  KVISH

稳固性错误:需要标识符,得到'LParen'

  •  5
  • KVISH  · 技术社区  · 8 年前

    我发现了错误:

    Expected identifier, got 'LParen'
    

    问题是,这段代码来自Solidity文档!我为这个错误做了很多尝试,但都没有成功。我得到代码的链接是: https://solidity.readthedocs.io/en/latest/solidity-by-example.html

    我有一张图片附有错误:

    enter image description here

    有人能告诉我我做错了什么吗?我有正确的版本,如下所示:

    kalyan@kalyan:/usr/bin$松露版本

    松露v4.1.13(核心:4.1.13)

    固化度v0.4.24(solc js)

    这是在Ubuntu 18.04上运行的。我还有别的事要做吗?

    编辑

    构造函数之前的代码是:

    /// Modifiers are a convenient way to validate inputs to
    /// functions. `onlyBefore` is applied to `bid` below:
    /// The new function body is the modifier's body where
    /// `_` is replaced by the old function body.
    modifier onlyBefore(uint _time) { require(now < _time); _; }
    modifier onlyAfter(uint _time) { require(now > _time); _; }
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   Inn0vative1    8 年前

    类似错误的答案如下: https://ethereum.stackexchange.com/a/56727/27511 我是为了方便才重新登载的。。。

    我也有类似的问题。在我的例子中,它是我安装的solc的系统版本。这是我所拥有的。我通过自制软件安装了solc,还安装了truffle。当我跑的时候 truffle version :

    Truffle v4.1.14 (core: 4.1.14)
    Solidity v0.4.24 (solc-js)
    

    所以我有了最新版本的松露,看起来,还有索尔克。但是,当我跑的时候 solc --version

    solc, the solidity compiler commandline interface
    Version: 0.4.19+commit.e67f0147.Darwin.appleclang
    

    我的系统版本不同。我发现我已经通过自制软件(在Mac上)安装了solidity,所以这与truffle使用的版本不同。所以在我的例子中,修复方法是使用自制程序升级solidity,它从0.4.19升级到0.4.24,我的问题就解决了。 要使用自制程序升级solidity,请执行以下操作:

    brew update
    brew upgrade
    brew tap ethereum/ethereum
    brew install solidity
    brew linkapps solidity
    

    如果您已经安装了solidity,那么前两行可能是您所需要的全部内容,但为了完整起见,添加了其余部分。

    这是在Mac上,如果你是在Linux上,那可能也是一个类似的问题,确保你升级了solidity的系统安装,而不是truffle的安装。