检查此示例以在协定中创建结构的实例。
pragma solidity ^0.4.22;
contract ArbitrableBlacklist {
enum ItemStatus {
Absent,
Cleared
}
struct Item {
ItemStatus status;
uint lastAction;
}
}
contract test{
ArbitrableBlacklist.Item public item;
function create() public {
item = ArbitrableBlacklist.Item({
status: ArbitrableBlacklist.ItemStatus.Absent,
lastAction: 0
});
}
}
如果您试图从javascript初始化,那么这可能是不可能的-至少现在是这样。但是您可以将结构成员的值作为参数传递给函数并创建一个实例,如图所示。
function create(ArbitrableBlacklist.ItemStatus _status, uint _action) public {
item = ArbitrableBlacklist.Item({
status: _status,
lastAction: _action
});
}
对于enum,从javascript传递索引0、1等