如果我使用创建结构对象的 new 关键字会出错吗?
Will I get an error if I use new keyword which creating objects of structs?
struct Foo {
string foo1;
}
Foo foo = new Foo("foo");
如果我运行这段代码会出错吗?
不能使用 new
关键字来创建结构。
如果您在函数内部创建结构,您还需要定义其数据位置(下例中的 memory
),因为 struct
是一个 reference type。
pragma solidity ^0.8;
contract MyContract {
struct Foo {
string foo1;
}
// implicit `storage` location of the property
Foo foo1 = Foo("foo");
function myFunction() public {
// need to explicitly state location of the variable
Foo memory foo2 = Foo("foo");
}
}
struct Foo {
string foo1;
}
Foo foo = new Foo("foo");
如果我运行这段代码会出错吗?
不能使用 new
关键字来创建结构。
如果您在函数内部创建结构,您还需要定义其数据位置(下例中的 memory
),因为 struct
是一个 reference type。
pragma solidity ^0.8;
contract MyContract {
struct Foo {
string foo1;
}
// implicit `storage` location of the property
Foo foo1 = Foo("foo");
function myFunction() public {
// need to explicitly state location of the variable
Foo memory foo2 = Foo("foo");
}
}