实体错误:预期的标识符,得到'LParen'

KVI*_*ISH 6 solidity

我收到错误消息:

Expected identifier, got 'LParen'
Run Code Online (Sandbox Code Playgroud)

问题是,此代码来自Solidity文档!我已经尝试了很多解决此错误的方法,但无济于事。我获得代码的链接是:https : //solidity.readthedocs.io/en/latest/solidity-by-example.html

我附有错误图片:

在此处输入图片说明

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

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

松露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); _; }
Run Code Online (Sandbox Code Playgroud)

Sam*_*ani 7

我也遇到了 Solidity 构造函数的这个问题,这可以很容易地解决

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

然后你卸载 并重新加载你的 vscode 编辑器

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

> also set the pragma solidity version to pragma solidity >=0.4.21 < 0.7.0;
Run Code Online (Sandbox Code Playgroud)

这对我有用


Inn*_*ve1 4

请参阅此处类似错误的答案: 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)
Run Code Online (Sandbox Code Playgroud)

所以我有最新版本的松露和似乎还有 solc。然而,当我跑步时solc --version

solc, the solidity compiler commandline interface
Version: 0.4.19+commit.e67f0147.Darwin.appleclang
Run Code Online (Sandbox Code Playgroud)

我的系统 Solidity 版本不同。我发现我已经通过 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
Run Code Online (Sandbox Code Playgroud)

如果您已经安装了 Solidity,那么前两行可能就是您所需要的,但为了完整性而添加了其余的行。

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