4

为什么下面的代码包含错误(ParserError: Expected identifier but got '=')。

contract Test {

    struct Box {
        uint size;
    }

    Box public box;
    box.size = 3;    //<-- error here

    constructor() public {
    }

}

如果我把它box.size = 3;放进去constructor

contract Test {

    struct Box {
        uint size;
    }

    Box public box;

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

}
4

1 回答 1

6

该语法不允许在合同级别进行分配。但它允许声明状态变量,并且这些变量可以包含初始化程序。因此,您可以使用

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

或者

Box public box = Box(3);
于 2018-07-08T10:05:50.923 回答