Arrays - why is the [index] operator only one way?

Because it’d have to return a reference, which might be a duff pointer and will crash. If you have a set method, it gets a chance to fail gracefully.