我收到错误消息:
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)
我也遇到了 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)
这对我有用
请参阅此处类似错误的答案: 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安装的系统。