Как установить параметры по умолчанию для функций в Солидности - PullRequest
0 голосов
/ 31 августа 2018

У меня есть приведенный ниже пример из Solidity Documeentation , и у меня похожий код в моем проекте, и я хочу установить значение по умолчанию для параметра key, если ключ не передан от вызывающей стороны

pragma solidity ^0.4.0;

contract C {
    function f(uint key, uint value) public {
        // ...
    }

    function g() public {
        // named arguments
        f({value: 2, key: 3});
    }
}

Мои вопросы -

  • Предоставляет ли язык Solidity параметры по умолчанию?
  • Как добиться того же, если параметры по умолчанию не разрешены?

Цените помощь?

1 Ответ

0 голосов
/ 31 августа 2018

Solidity не поддерживает параметры по умолчанию, но он находится на их дорожной карте (см. https://github.com/ethereum/solidity/issues/232). Чтобы обойти это, просто используйте перегрузку функции:

pragma solidity ^0.4.0;

contract C {
    function f(uint key, uint value) public {
        // ...
    }

    function h(uint value) public {
        f(123, value);
    }

    function g() public {
        // named arguments
        f({value: 2, key: 3});
    }

    function i() public {
        h({value: 2});
    }
}
...