This is a very simple technique which many of us might be using without knowing it's gas efficient.
Consider the following contracts:
contract Inc1{ uint[] public arr = [0,1,2,3,4,5,6,7,8,9,10]; uint total; function something() external { uint sum; uint[] memory _arr = arr; for (uint i; i < _arr.length; i += 1) { sum += _arr[i]; } total = sum; } } contract Inc2{ uint[] public arr = [0,1,2,3,4,5,6,7,8,9,10]; uint total; function something() external { uint sum; uint[] memory _arr = arr; for (uint i; i < _arr.length; i++) { sum += _arr[i]; } total = sum; } } Both the contracts have function something which iterates through the array to sum all the elements. But the difference is in the increment style of loops. Inc1 has i +=1 while Inc2 has i++
Inc1
Inc2
Top comments (0)