首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当compiling.Use“构造函数(.){. }”代替时,我得到了一个错误

当compiling.Use“构造函数(.){. }”代替时,我得到了一个错误
EN

Ethereum用户
提问于 2018-04-18 02:53:40
回答 4查看 11.2K关注 0票数 11

我听过关于乌德米的讲座。但我有个错误

这是我的“收件箱/合同/Inbox.sol”

代码语言:javascript
复制
pragma solidity ^0.4.17;
contract Inbox {
    string public message;

    function Inbox(string initialMessage) public {
        message = initialMessage;
    }

    function setMessage(string newMessage) public {
        message = newMessage;
    }
}

这里是一个“收件箱/编译程序”文件

代码语言:javascript
复制
const path = require('path');
const fs = require('fs');
const solc = require('solc');

const inboxPath = path.resolve(__dirname, 'contracts','Inbox.sol');
const source = fs.readFileSync(inboxPath, 'utf8');

console.log(solc.compile(source, 1));

在我在终端上编译这个文件之后

节点compile.js

有一个错误如下所示

代码语言:javascript
复制
  errors: 
           [ ':6:5: Warning: Defining constructors as functions with the same name 
as the contract is deprecated. Use "constructor(...) { ... }" 
    instead.\n    function Inbox(string initialMessage) public {\n    ^ 
    (Relevant source part starts here and spans across multiple lines).\n' ],

我用麦克。我做的一件事与讲座不同,那就是“npm”在其他文件夹中,而不是“收件箱”,我复制并粘贴了创建的所有文件到收件箱文件夹中。

EN

回答 4

Ethereum用户

回答已采纳

发布于 2018-04-18 02:58:24

这应该是一个警告,而不是一个错误。无论如何,使用以下语法

代码语言:javascript
复制
function Inbox(string initialMessage) public {
    message = initialMessage;
}

在新版本的“稳固”中被废弃。您必须使用constructor而不是合同名称。

代码语言:javascript
复制
constructor(string initialMessage) public {
    message = initialMessage;
}

这将在没有警告的情况下编译。

票数 16
EN

Ethereum用户

发布于 2018-04-20 07:00:48

只需使用构造函数()就可以了。

代码语言:javascript
复制
constructor(string initialMessage) public {
    message = initialMessage;
}

如果您使用函数构造函数(.)..。我想你会收到以下警告:

警告:此函数名为“构造函数”,但不是契约的构造函数。如果您想让它成为构造函数,请使用“构造函数(.){. }”而不使用"function“关键字来定义它。

票数 3
EN

Ethereum用户

发布于 2021-12-16 08:38:59

在构造函数中声明字符串之类的参数时,不要忘记添加memorystorage

代码语言:javascript
复制
 constructor(string memory initialMessage) {
        message = initialMessage;
    }
票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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