aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Ward <chriswhward@gmail.com>2018-10-01 22:53:51 +0800
committerChris Ward <chriswhward@gmail.com>2018-11-26 18:04:36 +0800
commit58181e8df9c2cb3401e02d0533ba6c2c0a2bde6a (patch)
tree6ab1f11c6c12f0a4ace18cc08a9a0b7104a59843
parent2e861bf1a0825d17386655cdaaa2c7371b6d2c5c (diff)
downloaddexon-solidity-58181e8df9c2cb3401e02d0533ba6c2c0a2bde6a.tar
dexon-solidity-58181e8df9c2cb3401e02d0533ba6c2c0a2bde6a.tar.gz
dexon-solidity-58181e8df9c2cb3401e02d0533ba6c2c0a2bde6a.tar.bz2
dexon-solidity-58181e8df9c2cb3401e02d0533ba6c2c0a2bde6a.tar.lz
dexon-solidity-58181e8df9c2cb3401e02d0533ba6c2c0a2bde6a.tar.xz
dexon-solidity-58181e8df9c2cb3401e02d0533ba6c2c0a2bde6a.tar.zst
dexon-solidity-58181e8df9c2cb3401e02d0533ba6c2c0a2bde6a.zip
Move FAQ point to input and output parameters and polish surrounding text
Update docs/control-structures.rst Co-Authored-By: ChrisChinchilla <chriswhward@gmail.com> Remove line with no further details. Fix tabs Remove FAQ item
-rw-r--r--docs/control-structures.rst16
-rw-r--r--docs/frequently-asked-questions.rst5
2 files changed, 15 insertions, 6 deletions
diff --git a/docs/control-structures.rst b/docs/control-structures.rst
index 889fbdb9..720b7084 100644
--- a/docs/control-structures.rst
+++ b/docs/control-structures.rst
@@ -30,6 +30,16 @@ with two integers, you would use something like::
Function parameters can be used as any other local variable and they can also be assigned to.
+.. note::
+
+ An :ref:`external function<external-function-calls>` cannot accept a
+ multi-dimensional array as an input
+ parameter. This functionality is possible if you enable the new
+ experimental ``ABIEncoderV2`` feature by adding ``pragma experimental ABIEncoderV2;`` to your source file.
+
+ An :ref:`internal function<external-function-calls>` can accept a
+ multi-dimensional array without enabling the feature.
+
.. index:: return array, return string, array, string, array of strings, dynamic array, variably sized array, return struct, struct
Return Variables
@@ -56,7 +66,7 @@ two integers passed as function parameters, then you use something like::
The names of return variables can be omitted.
Return variables can be used as any other local variable and they
-are zero-initialized. If they are not explicitly
+are initialized with their :ref:`default value <default-value>` and have that value unless explicitly set.
set, they stay zero value.
You can either explicitly assign to return variables and
@@ -122,6 +132,8 @@ the same as the number of return types.
Function Calls
==============
+.. _internal-function-calls:
+
Internal Function Calls
-----------------------
@@ -143,6 +155,8 @@ contract can be called internally.
You should still avoid excessive recursion, as every internal function call
uses up at least one stack slot and there are at most 1024 slots available.
+.. _external-function-calls:
+
External Function Calls
-----------------------
diff --git a/docs/frequently-asked-questions.rst b/docs/frequently-asked-questions.rst
index b6e5fe78..e1a0e91b 100644
--- a/docs/frequently-asked-questions.rst
+++ b/docs/frequently-asked-questions.rst
@@ -307,11 +307,6 @@ to create an independent copy of the storage value in memory.
On the other hand, ``h(x)`` successfully modifies ``x`` because only
a reference and not a copy is passed.
-Is it possible to return an array of strings (``string[]``) from a Solidity function?
-=====================================================================================
-
-Only when ``pragma experimental "ABIEncoderV2";`` is used.
-
What does the following strange check do in the Custom Token contract?
======================================================================