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
`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?
==================================================================================

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
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
Value Types