Giải quyết lỗi "không hỗ trợ lập chỉ mục" trong chương trình Go

Nếu bạn đang đọc bài đăng này, có thể bạn đang tìm kiếm trên Google cách giải quyết vấn đề này: bạn đang chuyển một con trỏ đến mộtslicehoặc làmaptrong một hàm và khi tham chiếu một mục với*variable[0], bạn nhận được lỗi đó.

Tôi phải giải quyết nó như thế nào?

Giải pháp rất đơn giản: thay vì sử dụng

*variable[0]

sử dụng

(*variable)[0]

Tại sao tôi nhận được lỗi kỳ lạ này? 🤔

*variable[0]được trình biên dịch Go diễn giải là*(variable[0]). Vì vậy, những gì bạn đang yêu cầu trình biên dịch làm là, lấy phần tử đầu tiên trong lát hoặc mục bản đồ có khóa 0 và tham chiếu con trỏ đó.

Điều này giải thích lỗi:variabletrong ngữ cảnh đó là một con trỏ, không phải một giá trị, vì vậy bạn không thể lấy mục [0] của một con trỏ đến một địa chỉ, trước tiên bạn cần tham khảo nó để nhận giá trị, đó là điều tôi nghĩ bạn đang cố gắng thực hiện trong địa điểm đầu tiên.


Các hướng dẫn về go khác: