What is the difference between Go's index-based and pointer-based slice access?