August 2019
Intermediate to advanced
486 pages
13h 52m
English
As the name suggests, this kind of function type are for internal use within the contract. These internal functions can be either library internal functions or functions inherited from the super contract. All of these functions must be executable internally.
The following example that shows how to use internal function types:
library ArrayIteratorLib { function iterate(function(uint) pure returns (uint) _skipFn) internal pure returns (uint[] tempArr) { tempArr = new uint[](10); for(uint i = 0; i < 10 ; i++) { tempArr[i] = _skipFn(i + 1); } }}contract SkipContract { function skip1(uint _i) internal pure returns(uint) { return _i * 1; } function skip2(uint _i) internal pure returns(uint) { return _i * 2; }