Move undefined FAQ item

This commit is contained in:
Chris Ward 2018-11-15 12:02:38 +01:00
parent 9db76403bb
commit f1d02432a6
2 changed files with 2 additions and 38 deletions

View File

@ -143,44 +143,6 @@ arguments for you.
See `ping.sol <https://github.com/fivedogit/solidity-baby-steps/blob/master/contracts/45_ping.sol>`_ and See `ping.sol <https://github.com/fivedogit/solidity-baby-steps/blob/master/contracts/45_ping.sol>`_ and
`pong.sol <https://github.com/fivedogit/solidity-baby-steps/blob/master/contracts/45_pong.sol>`_. `pong.sol <https://github.com/fivedogit/solidity-baby-steps/blob/master/contracts/45_pong.sol>`_.
When returning a value of say ``uint`` type, is it possible to return an ``undefined`` or "null"-like value?
============================================================================================================
This is not possible, because all types use up the full value range.
You have the option to ``throw`` on error, which will also revert the whole
transaction, which might be a good idea if you ran into an unexpected
situation.
If you do not want to throw, you can return a pair::
pragma solidity >0.4.23 <0.6.0;
contract C {
uint[] counters;
function getCounter(uint index)
public
view
returns (uint counter, bool error) {
if (index >= counters.length)
return (0, true);
else
return (counters[index], false);
}
function checkCounter(uint index) public view {
(uint counter, bool error) = getCounter(index);
if (error) {
// Handle the error
} else {
// Do something with counter.
require(counter > 7, "Invalid counter value");
}
}
}
Are comments included with deployed contracts and do they increase deployment gas? Are comments included with deployed contracts and do they increase deployment gas?
================================================================================== ==================================================================================

View File

@ -13,6 +13,8 @@ Solidity provides several elementary types which can be combined to form complex
In addition, types can interact with each other in expressions containing In addition, types can interact with each other in expressions containing
operators. For a quick reference of the various operators, see :ref:`order`. operators. For a quick reference of the various operators, see :ref:`order`.
The concept of "undefined" or "null" values do not exist in Solidity. To handle any unexpected values, you should use the :ref:`revert function<assert-and-require>` to revert the whole transaction.
.. index:: ! value type, ! type;value .. index:: ! value type, ! type;value
Value Types Value Types