【问题标题】:Solidity error: Expected identifier, got 'LParen'Solidity 错误:预期标识符,得到“LParen”
【发布时间】:2019-01-10 20:26:00
【问题描述】:

我收到了错误:

Expected identifier, got 'LParen'

问题是,这段代码来自 Solidity 文档!我为这个错误尝试了很多东西,但无济于事。我得到代码的链接是:https://solidity.readthedocs.io/en/latest/solidity-by-example.html

我有一张带有错误的图片:

有人可以向我解释我做错了什么吗?我有正确的版本,如下所示:

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

Truffle v4.1.13(核心:4.1.13)

Solidity 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); _; }

【问题讨论】:

  • 你文件中构造函数前面的代码是什么?
  • 我把代码放在那里。它是示例文档中的 BlindAuction 类。
  • 你是通过命令行编译的吗?除了 bid 的影子声明(他们应该修复)之外,它还可以在 Remix 中使用。
  • 是的,我看到的和亚当一样。在 remix 和 solc 中对我来说效果很好
  • 请提供您尝试完整编译的确切代码。

标签: solidity


【解决方案1】:

在此处查看类似错误的答案:https://ethereum.stackexchange.com/a/56727/27511 为了方便,我重新发布...

我遇到了类似的问题。就我而言,它是我安装的 solc 的系统版本。这就是我所拥有的。我通过 Homebrew 安装了 solc,还安装了 truffle。当我运行truffle version:

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

所以我有最新版本的松露,而且貌似还有 solc。但是,当我运行solc --version

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

我的系统可靠版本不同。我发现我已经通过 Homebrew(在 Mac 上)安装了solidity,所以这与 truffle 使用的版本不同。所以在我的情况下,修复是使用自制软件升级solidity,它从0.4.19升级到0.4.24,我的问题就消失了。 使用 Homebrew 升级solidity:

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

如果您已经安装了solidity,前两行可能就是您所需要的,但为了完整起见,添加了其余行。

这是在 Mac 上,如果您在 Linux 上,可能会出现类似问题,请确保您升级的是solidity 的系统安装,而不是使用truffle 安装的。

【讨论】:

    【解决方案2】:

    我在solidity的构造函数中也遇到过这个问题,这很容易解决

    如果您在 VSCODE 中运行代码,那么您可能已经安装了扩展程序 Solidity 扩展

    那么你就有了 卸载它并重新加载你的 vscode 编辑器

    如果您可能已经卸载并且没有重新加载您的 vs 代码,那么您将 面临同样的问题

    > also set the pragma solidity version to pragma solidity >=0.4.21 < 0.7.0;
    

    这对我有用

    【讨论】:

      猜你喜欢
      • 2022-07-24
      • 2022-07-14
      • 1970-01-01
      • 2022-07-06
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多