我可以使用元组作为映射的键吗?

时间:2019-05-24 12:35:25

标签: blockchain ethereum solidity

我想这样做

 struct A
    {
        uint x;
        string str;
    }
 mapping ((uint,bytes32,uint)=> structA);

可以使用元组作为映射的键吗?

1 个答案:

答案 0 :(得分:0)

您不能,只能将基本类型用作键,请参阅文档:https://solidity.readthedocs.io/en/v0.5.8/types.html#mapping-types

不过,您可以使用bytes32哈希函数将元组转换为keccak256类型,并安全地使用该值作为键,如下所示:

keccak256(abi.encodePacked(a, b, c))

其中a, b, c是您的元组的值。