编译器不允许我实例化结构
Compiler won't let me instantiate struct
通常这个错误在声明函数时出现,并通过在参数旁边添加“内存”来消失,但这次我无法解决它。我正在尝试实例化一个接受两个参数的结构:
struct Obj {
string where;
uint what;
}
function do() public {
Obj obj=Obj("here",1);
}
带有新 Obj 触发器的行:TypeError: Data location must be "storage", "memory" or "calldata" for variable, but none was given.
我尝试将“内存”放在各处,在第一个参数之后,在第二个参数之后,在两个参数之后,在函数之后等等。似乎没有什么可以安抚编译器。
我正在使用 pragma solidity ^0.8.0;
首先需要定义数据类型(Obj
),然后是位置(memory
或storage
),然后是变量名(obj
)那。
function foo() public {
Obj memory obj = Obj("here", 1);
}
通常这个错误在声明函数时出现,并通过在参数旁边添加“内存”来消失,但这次我无法解决它。我正在尝试实例化一个接受两个参数的结构:
struct Obj {
string where;
uint what;
}
function do() public {
Obj obj=Obj("here",1);
}
带有新 Obj 触发器的行:TypeError: Data location must be "storage", "memory" or "calldata" for variable, but none was given.
我尝试将“内存”放在各处,在第一个参数之后,在第二个参数之后,在两个参数之后,在函数之后等等。似乎没有什么可以安抚编译器。
我正在使用 pragma solidity ^0.8.0;
首先需要定义数据类型(Obj
),然后是位置(memory
或storage
),然后是变量名(obj
)那。
function foo() public {
Obj memory obj = Obj("here", 1);
}