August 2019
Intermediate to advanced
486 pages
13h 52m
English
Just as in C/C++, you can pass a function as an argument to another function, and the same can be done in Solidity. These are called function types. The variables of function types will be assigned when you pass a function as an argument to another function that receives a function type argument. In the same way, you can return a function type from a function.
The syntax to define function types is as follows:
function (<parameter types>) {internal|external} [pure|constant|view|payable] [returns (<return types>)]
In the preceding syntax, the keywords within the square brackets, [...], are optional. As you can see in the code, the [returns (<return types>)] syntax is also optional—it can be removed if ...