如果我使用创建结构对象的 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"); 
    }
}