Constructor Solidity ParserError:应为标识符,但得到'=';

Constructor Solidity ParserError:应为标识符,但得到'=';,constructor,ethereum,identifier,solidity,parsing-error,Constructor,Ethereum,Identifier,Solidity,Parsing Error,为什么下面的代码包含错误(ParserError:预期标识符,但得到“=”) 语法不允许合同级别的作业。但它允许声明状态变量和。因此,您可以使用 Box public box = Box({ size: 3 }); 或 我不使用Solidity,但我想你不能在函数外赋值。 contract Test { struct Box { uint size; } Box public box; constructor() public {

为什么下面的代码包含错误(
ParserError:预期标识符,但得到“=”


语法不允许合同级别的作业。但它允许声明状态变量和。因此,您可以使用

Box public box = Box({ size: 3 });


我不使用Solidity,但我想你不能在函数外赋值。
contract Test {

    struct Box {
        uint size;
    }

    Box public box;

    constructor() public {
        box.size = 3;
    }

}
Box public box = Box({ size: 3 });
Box public box = Box(3);