Yes of course you can but each time you access the array, Blitz has to take the base address of the array, work out where the offset into the array is based on the index, add it to the base address and then read the array data.
With EachIn, all it seems to have to do, is keep track of where it is in memory, starting at the base address, adding the size of the type to it with each iteration, which is a lot less instructions and it does work faster. For example, a routine I wrote ran at 80 milliseconds with a regular for-next loop using an index, whereas the EachIn technique took only 70 milliseconds. That's something like at 13% speedup.
So yes you can use an index, but it's not as efficient as it could be.
With EachIn, all it seems to have to do, is keep track of where it is in memory, starting at the base address, adding the size of the type to it with each iteration, which is a lot less instructions and it does work faster. For example, a routine I wrote ran at 80 milliseconds with a regular for-next loop using an index, whereas the EachIn technique took only 70 milliseconds. That's something like at 13% speedup.
So yes you can use an index, but it's not as efficient as it could be.