ParserError: Expected '{' but got 'memory'

ParserError: Expected '{' but got 'memory'

正在使用 pragma solidity >=0.7.0 <0.9.0;

42 行具有以下功能:

function addXtoAccName( address _accNumber, string _xtoName ) public memory {
        accounts[_accNumber].xtoDisplayName = _xtoName;
        accounts[_accNumber].xtoAccNumber = _accNumber;
}

导致此错误消息:

ParserError: Expected '{' but 
got 'memory'
:
:
42 | function addXtoAccName(
address _accNumber, string 
_xtoName ) public membory {
| ^^^^^^

谁能解释一下我在第 42 行做错了什么?

您的代码在函数定义的修饰符部分使用了 memory 关键字,而它不属于该部分。此外,它缺少 string 参数的 data location。所有引用类型(包括 string)都需要定义它们的数据位置。

看来您只是放错了 memory 关键字。

请注意,以防万一您打算有意使用名为 memory 的修饰符:这是保留关键字,因此无法使用具有此名称的修饰符。


解决方法:memory关键字移到string之后:

function addXtoAccName( address _accNumber, string memory _xtoName ) public {