微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

编译器不会让我实例化结构

如何解决编译器不会让我实例化结构

通常在声明函数时会出现此错误,并通过在参数旁边添加“内存”而消失,但这次我无法解决它。我正在尝试实例化一个接受两个参数的结构:

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),然后是位置(memorystorage),然后是变量名(obj)。

function foo() public {
    Obj memory obj = Obj("here",1);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。