首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我这里有一个ParserError“函数Stratus(string _greeting) {”

我这里有一个ParserError“函数Stratus(string _greeting) {”
EN

Ethereum用户
提问于 2019-06-22 08:37:57
回答 1查看 58关注 0票数 2
代码语言:javascript
复制
pragma solidity ^0.4.19;

contract Stratus {

    string public greeting;
    address public owner;

    event GreetingChanged (string oldGreeting, string newGreeting)

    function Stratus(string _greeting) {
        greeting = _greeting;
        owner = msg.sender;
    }

    function setGreeting (string _greeting){
        require(owner == msg.sender)
        GreetingChanged(greeting,_greeting)
        greeting = _greeting
        }
    }
EN

回答 1

Ethereum用户

回答已采纳

发布于 2019-06-22 09:12:35

您所使用的“坚固”的版本是非常古老的。solidity的最新稳定编译器是version:0.5.8+commit.23d335f2.Emscripten.clang。可以使用以下代码删除上述错误。但你必须使用最新版本的坚固。

代码语言:javascript
复制
pragma solidity >=0.4.0 <0.6.0;

contract Stratus {

    string public greeting;
    address public owner;

    event GreetingChanged (string oldGreeting, string newGreeting);

    constructor(string memory _greeting) public {
        greeting = _greeting;
        owner = msg.sender;
    }

    function setGreeting (string memory _greeting) public {
        require(owner == msg.sender);
        emit GreetingChanged(greeting,_greeting);
        greeting = _greeting;
        }
    }

如果您想获得上述契约的ABI和字节码,那么可以通过在混炼中粘贴代码来获得它。

但是,首先,将混合中的编译器版本更改为version:0.5.8+commit.23d335f2.Emscripten.clang

如果它显示新的布局,则使用较旧的混合布局。

我所做的

更改:

  1. 我添加了更新版本的solidity作为pragma solidity >=0.4.0 <0.6.0;
  2. 我在一些说明之后加上了分号。
  3. 我为函数添加了关键字public,您也可以将它们设置为私有
  4. 我添加了关键字memory,就好像我们要创建一个数组作为函数的参数一样,那么我们必须首先为它保留内存。
  5. 如果要调用不返回值的函数,则必须在最新的稳健性中使用emit

您还可以检查坚固性的最新稳定版本的语法。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/72111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档