solid程序编译器问题


pragma solidity ^0.8.17;
contract Greeter {
string greeting;
function Greeter(string _greeting) public{
greeting=_greeting;
}
function greet() constant returns (string){
return greeting;
}
}

误差

ParserError: Expected '{' but got 'constant'
--> project:/contracts/greeter.sol:7:22:
|
7 |     function greet() constant returns (string){

我正在编译solid程序,但是在编译

时有问题

在新的编译器版本(0.4.21以上)中,构造函数和常量关键字被删除。现在,您必须使用for:

  • 构造函数下面的语句for:

    constructor([parameters]) { // your logic }

  • 常数:这取决于你给出的功能可访问性,在这种情况下是external。它允许打印你初始化的字符串。

你必须这样修改你原来的smart:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
contract Greeter {
string greeting;
constructor(string memory _greeting) {
greeting = _greeting;
}
function greet() external view returns(string memory){
return greeting;
}
}

使用external或public代替constant,因为constant关键字在0.4.21版之后从solidity中删除。

最新更新