Solidity:TypeError 无效类型。从类型(字符串存储指针)到请求的字符串内存的隐式转换无效

Solidity: TypeError Invalid type. Invalid implicit conversion from type (string storage pointer) to string meory requested

我正在尝试 return 来自结构的值,不同的方法都不成功

struct Briefing {
        string description;
        uint max_influencer;
        uint jobvalue;
        bool achievement;
        }

function getSummary() public view returns (Briefing) {
        return Briefing (
        string, 
        uint,
        uint, 
        bool
        ); 

当您使用引用类型(例如 struct)时,您总是需要指定数据位置。在这种情况下,它是内存,因为您需要先将值加载到内存,然后 return 从内存中加载它们。

您的问题没有具体说明您是需要 return 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;
    }
}