我正在尝试从结构返回值,不同的方法都是成功的
struct Briefing {
string description;
uint max_influencer;
uint jobvalue;
bool achievement;
}
function getSummary() public view returns (Briefing) {
return Briefing (
string,
uint,
uint,
bool
); 发布于 2021-09-16 14:28:31
在使用引用类型(如struct)时,总是需要指定数据位置。在本例中,它是内存,因为您需要首先将值加载到内存中,然后从内存中返回它们。
您的问题没有指定是需要返回struct的新实例,还是需要从存储中加载它,所以下面是这两个实例的示例:
pragma solidity ^0.8;
contract MyContract {
struct Briefing {
string description;
uint max_influencer;
uint jobvalue;
bool achievement;
}
Briefing summary;
function getSummaryHardcoded() public view returns (Briefing memory) {
return Briefing("desc", 1, 1, true);
}
function getSummaryStored() public view returns (Briefing memory) {
return summary;
}
}https://stackoverflow.com/questions/69210046
复制相似问题