Могу ли я использовать кортеж в качестве ключа в отображении? - PullRequest
1 голос
/ 24 мая 2019

Я хочу сделать это

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

Можно ли использовать кортеж в качестве ключа в отображении?

1 Ответ

0 голосов
/ 25 мая 2019

Нельзя, в качестве ключей можно использовать только элементарные типы, см. Документацию: https://solidity.readthedocs.io/en/v0.5.8/types.html#mapping-types

Однако вы можете преобразовать кортеж в тип bytes32, используя хэш-функцию keccak256, и безопасно использовать это значение в качестве ключа, например:

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

, где a, b, c будет значением вашего кортежа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...